oauth-2.0 - 如何防止刷新被盗的访问 token

标签 oauth-2.0 jwt token access-token refresh-token

场景是:您拥有有效期较长的刷新 token 和有效期较短的访问 token 。

设置:有客户端、应用程序服务器和身份验证服务器。

  • 客户端存储访问 token 。
  • 应用服务器存储刷新 token 。
  • 身份验证服务器分发刷新 + 访问 token 。

  • 优点之一是被盗的访问 token 只能在其有效时间内使用。

    假设黑客窃取了有效期为 30 分钟的访问 token 。当黑客在 30 分钟后使用有效但已过期的被盗访问 token 进行请求时,应用服务器将使用刷新 token 对其进行刷新,从而黑客获得一个新的有效且未过期的访问 token 。

    如何防止这种情况发生?

    最佳答案

    应用程序服务器不应具有刷新 token 。

    在 OAuth2.0 中 client应该存储刷新 token 。

    要使用刷新 token 创建新的访问 token ,client应该向授权服务器提供刷新 token (以及客户端 ID 和 secret )。

    关于oauth-2.0 - 如何防止刷新被盗的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50292792/

    相关文章:

    c - 在结构体中存储标记

    oauth-2.0 - 身份服务器不返回刷新 token

    javascript - 如何将 Firebase 自定义身份验证与 openID 提供商结合使用?

    laravel - 在 swagger Laravel 中使用 JWT Bearer token

    jwt - 如何在 Next.js 中实现身份验证

    json - Uncaught SyntaxError : Unexpected token : in JSON response

    php - Onelogin 和 ID token : grant request is invalid

    swift - Oauth2 URL 回调 Mac Swift 4

    java - 我们可以根据路径变量将 httpbasic 和 OAuth2 都用于 API 吗?

    javascript - 是否可以在 Php 中加密 JWT token 并在 Javascript 中解密?