justauth / JustAuth

🏆Gitee 最有价值开源项目 🚀:100: 小而全而美的第三方登录开源组件。目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么、推特、飞书、京东、阿里云、喜马拉雅、Amazon、Slack和 Line 等第三方平台的授权登录。 Login, so easy!
https://www.justauth.cn
MIT License
16.52k stars 2.78k forks source link

accesstoken抢占问题 #207

Open bbdabing opened 5 months ago

bbdabing commented 5 months ago

justauth抢占accesstoken问题,这里发现justauth不缓存accesstoken的,也就是每次需要都会重新获取accesstoken,那这会不会导致 第三方接口次数限制呢?比如:微信公众号的建议是accesstoken两小时内有效,有效期内部需要重复获取,获取的接口有次数限制。 另外,justauth在授权的过程中抢占accesstoken的问题咋解决,比如一个项目中,有引入一套成熟的全量接口的封装jar包,但是因为要 使用justauth,而不能兼容其他jar包如何处理,最简单的,jar包本身有获取accesstoken的逻辑并且做了缓存,但justauth又需要单独 获取,这两者之间存在抢占accesstoken的问题,导致accesstoken不停的过期重新获取。

zhangyd-c commented 3 months ago

https://github.com/justauth/JustAuth/issues/194

在接下来的 1.16.7 版本中,会将 getAccessTokengetUserInfo 两个接口提到 AuthRequest 中,这样业务系统可以直接调用这两个接口完成特定的业务。

针对你这个场景,业务系统使用 JustAuth 登录成功后将 AuthToken 信息缓存,当在 AuthToken 有效期内再次登录的时候,业务系统可以考虑跳过 getAccessToken 这步,直接调用 getUserInfo 获取用户信息