您好,匿名用户
随意问技术百科期待您的加入

OAuth的Access Token有效期问题

0 投票

我想要实现这样的功能:
在电商网站中,用户通过豆瓣账号登陆(OAuth授权),然后购买东西。购买完成时,有个“发布到豆瓣”的复选框,如果用户勾选,就可以自动在豆瓣发布这个订单/商品。
根据常规思路,我可以在用户登陆时,把Access Token存放在session里,完成订单时,用这个Access Token去发布消息。

但是。。。
这个账号可能连接了新浪微博、豆瓣、网易,但是用户只通过其中一个登陆,我就无法获知另两个的Access Token,也就没法在多个平台上发布消息。因为我显然不可能让用户在完成订单的时候把各种平台的授权页面又点一遍……

如果在用户连接平台时,把Access Token记录在数据库中,这个问题就可以解决了。

那么,Access Token有效期是多久呢?我查了一下各个API的,分别是几个小时到一个月不等,所以问题又变得纠结了……

用户头像 提问 2012年 12月1日 @ Aphrodite 上等兵 (185 威望)
分享到:

1个回答

0 投票

其实access token应该是不过期的,至少在国外的网站是这样。比如在twitter的faq(https://dev.twitter.com/docs/auth/oau...)里面有这样的描述

We do not currently expire access tokens. Your access token will be invalid if a user explicitly rejects your application from their settings or if a Twitter admin suspends your application. If your application is suspended there will be a note on your application page saying that it has been suspended.

而facebook针对离线应用,有专门的offline授权,只要用户启用了这个授权,那么你的token也不会过期。

我在国内的开放平台文档里还没有看到相关的描述,如果真是按你说的几个小时或者一个月过期,那就太不应该了,他们很明显就把这玩意当作普通的session对待了,可能就直接放到了缓存中。因为我们知道memcached的缓存最大生存时间就是一个月:),他们会这么干的。

用户头像 回复 2012年 12月1日 @ Evelynn 上等兵 (244 威望)
提一个问题:

相关问题

0 投票
1 回复 42 阅读
用户头像 提问 2012年 12月1日 @ Caitlyn 上等兵 (452 威望)
0 投票
1 回复 33 阅读
0 投票
1 回复 37 阅读
用户头像 提问 2012年 12月1日 @ Soraka 上等兵 (319 威望)
0 投票
1 回复 26 阅读
用户头像 提问 2012年 12月1日 @ Rider 上等兵 (281 威望)
+2 投票
1 回复 125 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...