V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
techzhou
V2EX  ›  OAuth

weibo的OAuth问题

  •  
  •   techzhou · 2012-06-05 19:38:30 +08:00 · 11560 次点击
    这是一个创建于 4546 天前的主题,其中的信息可能已经有所发展或是发生改变。
    开放平台文档上说 OAuth2.0 access_token 24小时后过期

    难道要24h以后 再授权一次 不是这么奇葩吧
    25 条回复    1970-01-01 08:00:00 +08:00
    kaka
        1
    kaka  
       2012-06-05 19:48:34 +08:00
    是的,sina比较短,审核过后是7天
    techzhou
        2
    techzhou  
    OP
       2012-06-05 19:59:16 +08:00
    @kaka 那么我不就是要把用户名和密码给存下来了。。。
    kaka
        3
    kaka  
       2012-06-05 20:08:16 +08:00
    @techzhou 那也要用户愿意把密码交给你。你可以把用户的cookie也设置7天过期。
    我的现在还没有审核过:http://www.v2ex.com/t/37596
    ultragtx
        4
    ultragtx  
       2012-06-05 20:18:56 +08:00
    要是存密码了还要OAuth干啥
    zythum
        5
    zythum  
       2012-06-05 20:20:07 +08:00
    朱一现在已经多审核什么没什么冲动了。如果不用通过审核的话,可以用oauth 1.0的方式。这样token是永久的。
    cooiky
        6
    cooiky  
       2012-06-05 20:21:49 +08:00
    用1.0
    young
        7
    young  
       2012-06-05 20:25:41 +08:00
    保存用户的token,每次登陆更新一下token
    fanzeyi
        8
    fanzeyi  
       2012-06-05 20:35:56 +08:00
    @cooiky 新申请的必须2.0
    fanzeyi
        9
    fanzeyi  
       2012-06-05 20:36:15 +08:00
    @young 不能 新浪没提供 refresh_token
    young
        10
    young  
       2012-06-05 23:14:28 +08:00
    @fanzeyi 不用refresh 这个api没有开发

    我说的是, 每次用户过oauth sina那边都会返回用户有效的token的, update之
    techzhou
        11
    techzhou  
    OP
       2012-06-06 08:31:17 +08:00
    @young 过oauth是什么意思 认证完显然是有效的 问题是会过期么
    shinyzhu
        12
    shinyzhu  
       2012-06-06 08:39:41 +08:00
    新申请的应用只能使用OAuth 2.0,来源审核通过后Access Token可以保存7天过期,没有refresh_token,只能重新让用户登录授权。
    另一种方式是使用grant_type=password的客户端授权,这样客户端需要保存用户名和密码,而且需要广场上线之后才能申请这个权限。
    cooiky
        13
    cooiky  
       2012-06-06 09:35:40 +08:00
    @fanzeyi 没啊,旧的可以用,新申请同样会给你app key和secret啊
    cooiky
        14
    cooiky  
       2012-06-06 09:37:19 +08:00
    @techzhou 就是让用户每次要用的时候都去点一遍授权
    2.0的规范就是有过期时间,但会提供refresh_token来刷新,可sina不给,好像要合作方才有
    QQ的2.0,好像是不过期的
    yun77op
        15
    yun77op  
       2012-06-06 10:02:10 +08:00
    7天一般够用了

    如果是优质应用的话,可以申请延长过期时间

    原则上是不提供refresh_token
    techzhou
        16
    techzhou  
    OP
       2012-06-06 10:25:17 +08:00
    @yun77op 那么比如那些weibo的客户端不是一直可以用的么 难道是存下密码的
    eerie
        17
    eerie  
       2012-06-06 10:26:41 +08:00
    @yun77op 啥叫原则上啊,不按标准来的oauth2就不应该叫oauth2
    国内的这些互联网企业经常有奇葩的事情
    eerie
        18
    eerie  
       2012-06-06 10:27:07 +08:00
    @techzhou u r right
    young
        19
    young  
       2012-06-06 11:48:56 +08:00
    @techzhou token肯定会过期啊 refresh_token也是去更新用户的token啊,只不过是sina那边帮你做了而已。 那么你的应用里面肯定得有个方法去检测用户的token有效期了
    virushuo
        20
    virushuo  
       2012-06-06 11:52:23 +08:00
    oauth2的规范是默认token是有有效期的,这没错。

    但oauth2要有refresh_token接口,不给这个根本没法用,新浪貌似就这么做的。

    我想他们并不是看不懂规范,而是表示用户是我新浪的,不是你的,所以用户要每次通过新浪才能用你的产品。

    所以…客户端为了方便就都自己把用户名密码保存下来了,多大的安全隐患啊。

    所以结论就是,少做这种平台的开发。
    young
        21
    young  
       2012-06-06 11:54:46 +08:00
    不给 refresh_token 也可以理解,现在weibo上到处卖粉的,再把 refresh_token 给开发了,那还了得

    虽然sina有监测
    yun77op
        22
    yun77op  
       2012-06-06 22:17:32 +08:00
    举个例子,2/friendships/friends 这个API返回的数据对象data.users[0~count].following总是为false,这是故意这样的,说是following字段尚未启用

    所以可以看出sina weibo API开放程度是有限的,OAuth相关的也就可以理解了
    toothpaste
        23
    toothpaste  
       2012-06-06 22:23:12 +08:00
    我自己做了个weibo的网页客户端,就是每24小时手动授权一遍,反正只有我自己用。
    satgi
        24
    satgi  
       2012-06-06 22:25:32 +08:00
    sina返回的数据多得吓死人啊
    zsdsz
        25
    zsdsz  
       2012-06-06 23:05:26 +08:00
    不用重新授权 载入应用重新获取access_token就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:07 · PVG 13:07 · LAX 21:07 · JFK 00:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.