access token已过期,怎么用refreshtoken刷新accesstoken。

jackxiang 2014-2-17 16:13 | |
需要重新获取code,然后得到access_token。
即要重新调用授权界面。需要用refreshtoken刷新accesstoken。
如果刷新取到了新的accesstoken、refreshtoken、expirein,需要用这些新的去替换掉关联表中的数据。
建议每次登陆的时候都用refreshtoken去刷新一次accesstoken。

来自:http://zhidao.baidu.com/link?url=lowvWKZOrelWHzeDa_AnrISFyS_QFZAnJ_WG6iqBRNZhikW32LfCBrJ8G_bPt39RV0fTXI2Szf4QVpLZuBXEgqcr4a68YmVS3m8WJ38aN-K

在OAuth2.0中用户的登录状态需要通过不断刷新来维持.

例如上面提到的应用.假设更详细的场景,这个应用在用户授权之后,每天给用户的人人网发送一条状态报告当天的日期.

用户授权之后,获取到一个access token和一个refresh token,还有一个是session key,这个是国内大多数开放平台自己添加的一个标记,可以让用户使用http来调用api,如果没有它,用户只能通过https来调用api.session key的生命周期和access token是相同的.

我们把这三个值存到一个队列的数据库中.

然后,在每天的10点,我们遍历这个数据库表,取出它的access token和session key,然后用他们去请求api,如果发现他们已经过期,我们就需要利用refresh token去重新刷新,获取新的access token和session key.然后利用他们去请求api,如果请求的时候提示refresh token也已经过期,那么这时候用户的登录状态就会过期,这说明这个用户至少2各月没有在此应用活跃了,这个活跃不光指用户自己在使用应用,也包括应用自动调用用户api的行为.

每次刷新token的时候都会返回一个新的refresh token,所以说如果你的应用每个月帮用户发一条状态的话,走上面的流程,一直下去,这个用户的登录状态一直都不会过期,至于为什么,自己去琢磨哦,琢磨透了也就理解了.


目前新浪微博的Oauth2.0的refresh token不对外开放。

来自:http://blog.csdn.net/wenlei_zhouwl/article/details/7256082

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/7024/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2014-2-17 16:16
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]