我对如何处理JWT访问和刷新令牌的最佳实践感兴趣 .

使用密码授予类型可以通过两种方式获取访问令牌:

  • 使用密码授权类型直接向oauth / token endpoints 用户的用户名和密码发送HTTP请求 . 如果数据正确,则服务器将使用正文消息中的访问和刷新令牌进行响应 .

  • 当访问令牌过期时,您可以按照首先描述的方式重新发送用户名/密码,或者使用具有refresh_token授权类型的刷新令牌 . 后一种方法似乎更方便,因为不需要发送用户的自信记录 .

但是存储refresh_token的正确方法是什么?我应该通过在数据库中保存令牌并使用过滤器来处理请求来在服务器端实现这一点吗?例如,当用户尝试调用某些安全方法时,过滤器会验证访问令牌的有效性,如果令牌无效,则从令牌本身提取用户名并轮询该用户的数据库以获取刷新令牌,然后请求一个新的访问令牌 .

或者我最好使用更轻量级的方法在cookie中存储访问和刷新令牌?但我听说这种技术可能有一些重要的安全缺陷 .

在此先感谢您的回复!