第三方登录一些问题,一直不明白 access_token 过不过期有什么意思
一直不明白 access_token
过期什么意思
比如,我第一次第三方登录,首先获取 code
根据 code
获取 access_token
根据 access_token
过去用户的 ID
( QQ
是获取 openid
), 把获取的 ID
存入数据库,然后下次登录一样,如果 ID
存在,直接登录,如果不存在,跳到注册页面
这样下来 access_token
过不过期有什么关系吗?再说 code
、 access_token
、 expires_in
、 refresh_token
这些也不保存数据库呀?
请高手指点
补充,可能我没说明白
我每次登录不都是上面的步奏吗?那 code
、 access_token
、 expires_in
、 refresh_token
,既能每次都上面的步奏,那他过期和不过期又有什么关系
比如 weibo
登录
第一步:获取 code
https://api.weibo.com/oauth2/authorize?client_id=" + clientId + "&response_type=code&redirect_uri=" + redirectUri + "&forcelogin=true
第二步:根据 code
获取 access_token
、 expires_in
、 uid
https://api.weibo.com/oauth2/access_token?client_id=" + clientId + "&client_secret=" + clientSecret + "&grant_type=authorization_code" + "&redirect_uri=" + redirectUri + "&code=" + code
第三步:根据 uid
判断用户是否注册,如果数据库存在,就直接登录,如果不存在就跳到注册页面
这样三步下来,和 access_token
过期好像没啥关系呀,因为每次 access_token
不都是新的吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
access_token
的过期也是为安全考虑。想象一种情况,我授权了一个应用,它拿到了我的
access_token
,然后我忘记我授权过了,于是我以后每次发布的内容都被它拿去存起来,或者它利用我的账号偷偷的发消息,我一点都不知道。 这种情况还是很可怕的。access_token一般作为请求操作时的访问令牌,比如你让用户用QQ登陆后要去拿用户的QQ头像,这时候向腾讯API发送请求时就需要带上access_token。
如果只是单纯的登陆的话,登陆后不做任何请求,理论上是可以不存access_token的,但是还是推荐你按照Oath2.0的标准来做。
access_token是用于从Resource server上获取信息的,如果过期就不能获取
如果只是实现登录功能的话,就不需要用到access_token了
我也不明白,数据库已经存了openID了,access_token过不过期有什么意义啊
怎么判断第三方给我们的token有没有过期啊?里面有expires_in这个信息,还是不知道没有用他去判断
我也不明白 楼主 你弄出来了没