首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

新浪微博OAuth2 过期绑定有关问题

2012-12-26 
新浪微博OAuth2 过期绑定问题最近在做新浪第三方登录认证,发现oauth2授权是过期的,而oauth1的token和token

新浪微博OAuth2 过期绑定问题

最近在做新浪第三方登录认证,发现oauth2授权是过期的,而oauth1的token和tokensecret是永久不变的,oauth2的token过期后会变化,那登录后,用什么与业务系统的本地用户进行绑定呢?显然用oauth2的token是不行的,因为过期后,再授权时,返回的token值与原来不一样,拿这个变化后的token是无法查询出对应本地业务系统中的用户信息的.经过对新浪授权后返回的自段进行分析

??? {"access_token":"2.00yY1BIxxxxxx2KeMD","remind_in":"7841204","expires_in":7841204,"uid":"288888860"}

发现有个uid,于是测试取消授权,然后再次授权,发现uid是不变的,那就好了,直接拿uid与本地用户绑定即可,每次授权过期后,重新授权时,拿返回的uid即可查询到本地业务系统中的用户,然后再将重新授权后的token更新到与用户绑定即可;


可能上面文字说的不太清楚,举例说明一下,假设本地用户表为user,绑定关联表为user_token,一般流程为:

?

新浪微博OAuth2 过期绑定有关问题

?

1,第一次用新浪帐号登录并授权后(此时本地业务系统的user表还没有该用户的信息),返回token和uid,然后系统自动在user中生产一条记录,将user与token和uid绑定到user_token表,然后让用户去完善信息(比如更改user_name、设置密码什么的),后续用户就可以使用本地帐号登录;

?

那假设用户一直使用第三方登录,或者使用第三方进行同步什么的,那么就设计到token过期的问题:

?

2,当授权token过期后,本地业务系统需要提醒用户再次授权,用户再使用新浪帐号登录授权时(注意用户使用的是新浪帐号,会跳转到新浪页去登录,本地业务系统是无法得到用户的新浪帐号的,也就是说此时你无法知道当前用户是谁),返回新的token和与原来一样的uid,这时,使用返回的uid(uid是不变的)到user_token表中查出这条记录,再将新的token更新即可!


希望对大家有点提示作用,或有更好的方式和流程的朋友,也希望能够分享出来!

热点排行