Oauth 2.0 刷新OAuth2访问令牌

Oauth 2.0 刷新OAuth2访问令牌,oauth-2.0,authorization,single-sign-on,access-token,refresh-token,Oauth 2.0,Authorization,Single Sign On,Access Token,Refresh Token,我正在构建一个由后端和前端(web)部分组成的web应用程序。我想在这两部分之间介绍auth,我的意图是使用OAuth2 前端部分将充当OAuth客户端,后端将充当OAuth提供程序-所以后端将发出访问和刷新令牌 我的计划当然是在后端存储刷新令牌,在前端存储访问令牌(并将每个请求作为头参数发送访问令牌)。假设访问令牌持续24小时,刷新令牌持续3个月 我的问题是何时(以及如何)刷新存储在前端的访问令牌?(我问这个问题是因为我想在它过期之前刷新它;如果没有必要,我不想让用户看到登录流) 我是否应该在

我正在构建一个由后端和前端(web)部分组成的web应用程序。我想在这两部分之间介绍auth,我的意图是使用OAuth2

前端部分将充当OAuth客户端,后端将充当OAuth提供程序-所以后端将发出访问和刷新令牌

我的计划当然是在后端存储刷新令牌,在前端存储访问令牌(并将每个请求作为头参数发送访问令牌)。假设访问令牌持续24小时,刷新令牌持续3个月

我的问题是何时(以及如何)刷新存储在前端的访问令牌?(我问这个问题是因为我想在它过期之前刷新它;如果没有必要,我不想让用户看到登录流)

  • 我是否应该在每次成功请求后返回新的访问令牌并将其存储在前端(听起来不是一个好主意)
  • 如果现有的访问令牌即将过期,我是否应该返回新的访问令牌?可能需要在前端检查是否通过头参数返回了新的访问令牌,以及是否需要替换旧的访问令牌
  • 我应该在前端同时存储访问令牌和刷新令牌吗?如果访问令牌已过期,则使用刷新令牌获取新令牌
  • 还有别的吗

  • 我不确定什么是最好的做法。

    我认为3号是最好的例子。 如果使用by cookie在前端存储这两个令牌(access_token和refresh_token),则可以使用getCookie方法轻松地从请求中进行检查

    检查来自请求的访问令牌

  • 如果(isAccessTokenExpired)检查请求中的刷新令牌
  • 如果(isRefreshTokenExpired)登录请求异常(自定义异常并执行某些操作)
  • 否则刷新两个令牌(延长时间或创建新令牌)和响应setCookie
  • 否则就继续吧

  • RefreshToken的过期时间必须长于AccessToken的资源服务器是什么?i、 e.
    frontend
    将为资源提供
    access_令牌
    的API是什么?您的
    frontend
    应用程序是带有服务器的web应用程序,还是在浏览器中运行的单页应用程序?您将使用哪种OAuth授权类型?