首页 文章

刷新OAuth2访问令牌

提问于
浏览
0

我正在构建Web应用程序,它将包括后端和前端(Web)部分 . 我想在这两部分之间引入auth,我的意图是使用OAuth2 .

前端部分将充当OAuth客户端,后端将充当OAuth提供者 - 因此后端将发出访问和刷新令牌 .

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

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

  • 我应该在每次成功请求后返回新的访问令牌并将其存储在前端(听起来不是一个好主意)

  • 如果现有的访问令牌只是要过期,我应该返回新的访问令牌 - 如果通过头参数返回新的访问令牌,可能需要检查前端,如果是这样,则更换旧的访问令牌 .

  • 我是否应该在前端侧存储访问和刷新令牌,如果访问令牌已过期,则使用刷新令牌获取新令牌

  • 别的什么?

我不确定什么是最佳做法 .

1 回答

  • 0

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

    check access token from request

    • if(isAccessTokenExpired)检查请求中的刷新令牌

    • if(isRefreshTokenExpired)LoginRequiredException(自定义激活并执行某些操作)

    • else刷新令牌(延长时间或创建新令牌)和响应setCookie

    • 否则继续 .

相关问题