如何在前端和后端存储 JWT 刷新令牌?

Dat*_*dze 3 architecture authentication jwt asp.net-core angular

客户端 - 如果我们将刷新令牌保存在“本地存储”中并且黑客获得此令牌,他/她将永远可以访问用户帐户(即使刷新令牌已过期,黑客也可以刷新访问和刷新令牌)。

服务器端——如果我们在数据库上保存刷新令牌,如何实现多重身份验证。如果我们创建包含字段例如“UserId”、“RefreshToken”、“ExpireDate”的表并为单个用户保存多个刷新令牌,它会正确吗?

你有什么建议在哪里保存刷新令牌,为什么?你的方法是什么?

谢谢

dan*_*y74 5

不完全了解您的问题,但您可以尝试查看服务器“Set-Cookie”响应标头。

这基本上是来自服务器的“请求”以在客户端上设置 cookie。cookie 可以是 HTTP Only,这意味着 JavaScript 无法访问它。它只是在所有后续请求中自动发送到服务器。以这种方式设置您的 JWT cookie。

如果您将刷新令牌包装在 JWT 中,它将是完全安全的。然后,服务器可以通过解码 JWT 并访问其数据对象来访问相关客户端的刷新令牌。

不确定这是否能回答您的问题,但可能会让您思考正确的路线。