新浪微博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,一般流程为:

 

 

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

 

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

 

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


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值