authentication - 如何刷新 token 而无需再次进行身份验证? OAuth2

标签 authentication oauth oauth-2.0 basic-authentication

如何使用 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/

相关文章:

soap - 使用 OAuth 访问 token 访问 SOAP 服务?

android - 使用 Google+ 的 Soundcloud API 移动 OAUTH 登录不适用于 Android

qt - QtWebEngine 依赖应用程序的静态构建

php - 如何重定向到登录页面然后重定向回php中的上一页

PHP session 未在登录页面中注册

ios - 自动填充用户名和密码 UIWebView Swift

azure - 为 VueJs 前端和 Azure 函数应用程序后端实现身份验证/授权的最佳方法是什么

android - Postman Rest Client 如何创建 Oauth 签名?无法在 android 中解析 Oauth_Signature

node.js - 如何在产品环境中保护我的 GO REST 服务?

spring-boot - 如何为不同的服务配置多个 OAuth2RestTemplates?