据我所知,
您可以缩短JWT访问令牌的使用寿命,这样,如果有人可以访问它,它就不会工作很长时间。然而,我们不会用JWT刷新令牌来增强用户体验。
但现在,如果有人可以访问我的JWT刷新令牌,这将授予他们访问受保护资源的权限。那么它是如何安全的呢?
我理解你的问题if someone has access to my JWT Refresh Token, that would grant them access to the protected resources. So how is it secure then?
要检查它是否安全,您可以做的是验证令牌,检查其声明,并交叉检查当您点击refresh-token
函数时,它是否是绕过某些变量(如user-id
或user-email
和user-password
(登录的同一个人。如果任何条件失败,你可以返回Invalid-token
或Unauthorized
并将其踢出。
以下是验证刷新令牌和发布新承载令牌的工作流的说明?
刷新令牌需要以安全的方式进行管理和处理。优选的是,刷新令牌不应出现在浏览器中。此外,刷新令牌永远不会发送到API。
因此,刷新令牌只在客户端和授权服务器(而不是浏览器或API的(之间发送
因此,如果你做得很好,刷新令牌永远不会离开后端(不会暴露在浏览器中(,那么它是非常安全的(除非你的后端被黑客入侵,但无论如何你都已经结束了(。
您可以通过使用证书和其他网络限制来保护客户端后端应用程序和授权服务器之间的通信通道,从而进一步加强它。因此,如果您遵循OAuth 2.1中概述的最佳实践,它是非常安全和可靠的。
因此,结论是,由于刷新令牌从未在最初收到它的客户端之外使用,因此它非常安全,只要后端没有被黑客入侵,那么它就是安全的。
如果你正在构建一个SPA客户端(React…(,那么你应该考虑使用BFF模式。因为在浏览器中处理令牌从来都不是一个好主意。另请参阅此视频