第三方登录一些问题,一直不明白 access_token 过不过期有什么意思

发布于 2022-09-01 12:29:45 字数 1378 浏览 21 评论 0

一直不明白 access_token 过期什么意思

比如,我第一次第三方登录,首先获取 code 根据 code 获取 access_token 根据 access_token 过去用户的 IDQQ 是获取 openid ), 把获取的 ID 存入数据库,然后下次登录一样,如果 ID 存在,直接登录,如果不存在,跳到注册页面

这样下来 access_token 过不过期有什么关系吗?再说 codeaccess_tokenexpires_inrefresh_token 这些也不保存数据库呀?

请高手指点


补充,可能我没说明白

我每次登录不都是上面的步奏吗?那 codeaccess_tokenexpires_inrefresh_token,既能每次都上面的步奏,那他过期和不过期又有什么关系

比如 weibo 登录

第一步:获取 code
https://api.weibo.com/oauth2/authorize?client_id=" + clientId + "&response_type=code&redirect_uri=" + redirectUri + "&forcelogin=true

第二步:根据 code 获取 access_tokenexpires_inuid
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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

梦在夏天 2022-09-08 12:29:45

access_token的过期也是为安全考虑。
想象一种情况,我授权了一个应用,它拿到了我的access_token,然后我忘记我授权过了,于是我以后每次发布的内容都被它拿去存起来,或者它利用我的账号偷偷的发消息,我一点都不知道。 这种情况还是很可怕的。

奶气 2022-09-08 12:29:45

access_token一般作为请求操作时的访问令牌,比如你让用户用QQ登陆后要去拿用户的QQ头像,这时候向腾讯API发送请求时就需要带上access_token。
如果只是单纯的登陆的话,登陆后不做任何请求,理论上是可以不存access_token的,但是还是推荐你按照Oath2.0的标准来做。

凤舞天涯 2022-09-08 12:29:45

access_token是用于从Resource server上获取信息的,如果过期就不能获取
如果只是实现登录功能的话,就不需要用到access_token了

手长情犹 2022-09-08 12:29:45

我也不明白,数据库已经存了openID了,access_token过不过期有什么意义啊

書生途 2022-09-08 12:29:45
    如果只是做登录,确实不需要access token,因为已经有openid或者uid跟你的用户对应起来了
    
    但是,这是授权行为啊,意味这第三方应用可以拿着access token去取你的数据啊
    
    所以这里就需要时效性来保证安全了。
勿挽旧人 2022-09-08 12:29:45
对于申请方来说,access_token,的作用无非是获取openId,和用户信息,首先要考虑到授权方的是否分两个接口:一个首次授权接口,一个是续期接口。在你第一次申请授权时,access_token在授权方会缓存90天(一般,这个不在意,expires_in会告诉你的),只要在这90天内,你每次调用接口,别人只需要把缓存中的access_token交给你就行了,请注意:它在expires_in时间内不变的;假设你刚好在expires_in之后继续申请授权,这时授权方发现存在refresh_token,他只需要拿到refresh_token,来调用续期access_token的API即可,无需做其他操作;再假设refresh_token也过期了,这种业务场景一般都过了3个月以上,完全可以重新申请授权,我个人勉强的理解是这样的,不知道对不对(⊙o⊙)…
幻想少年梦 2022-09-08 12:29:45

怎么判断第三方给我们的token有没有过期啊?里面有expires_in这个信息,还是不知道没有用他去判断

┾廆蒐ゝ 2022-09-08 12:29:45

我也不明白 楼主 你弄出来了没

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文