如何使用 OAuth2 刷新访问 token 而无需再次执行身份验证过程?
现在,如果获取用户失败,我将执行刷新 token ,但为了执行刷新 token ,我必须首先收到 401 未经授权的错误。
当我在无法执行请求后收到 401 时,我会重定向到登录屏幕,因为如果我不重定向到登录屏幕,后续请求将不会显示。
如果我使用了过期时间,则在不先执行请求的情况下 token 不会刷新,但在发出请求时 token 已经过期。
我要问的是我应该使用什么逻辑来刷新访问 token ,这样我的应用程序就不会在每次 token 过期时注销并需要再次进行身份验证。
我希望我的应用程序的功能更像 Facebook 或 Google,您可以在其中保持登录状态直到注销。
提前致谢。
最佳答案
您能让我知道您正在使用什么类型的应用程序和技术堆栈吗?
有两次:
访问 token 生命周期 - 短暂的 API 凭证(例如 60 分钟)
用户 session 生命周期(通常由刷新 token 表示 - 例如 12 小时)
有一些机制可以在客户端静默更新 token 。一般方法是获取新 token ,并在由于访问 token 过期而收到 401 错误时重试 API 调用,如 this class 中所示。我的。
如何获取新 token 取决于应用程序的类型(移动/SPA/基于 cookie 的网络应用程序)
关于authentication - 如何刷新 token 而无需再次进行身份验证? OAuth2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59103108/