我正在构建一个基于令牌的身份验证(Node.js 使用带角度客户端的护照/JWT)。
用户输入他的凭据后,他会获得一个访问令牌,他会在每个请求的标头(标头:bearer TOKEN)中发送该令牌。
我不想每次他的访问令牌过期时都提示登录请求(我猜是每天),我听说过Refresh Tokens。刷新令牌永远不会过期(或很少过期)并且能够无限期地更新令牌。当访问令牌即将过期时,客户端可以通过发送他的刷新令牌来发送更新请求以获取新的访问令牌。
我不明白一些事情,我可能会遗漏一些东西:
长期/永不过期的刷新令牌如何不会破坏拥有短期访问令牌的安全性。
Cookie 可以被窃取并使用到过期为止。令牌是短暂的,因此它们更安全,但如果我提供一个长期刷新令牌,我将失去使用令牌的优势。
注意:我知道刷新令牌是在初始登录时发送的,因此不能在每个请求中都被欺骗,但如果它们在初始请求中被欺骗,它们很容易受到攻击。