Authentication 取消JWT而不过期
我希望为一个移动应用程序使用基于令牌的身份验证,只要用户没有注销,该应用程序就可以让用户一直登录。我的方法是在用户登录/注册时创建JWT刷新令牌;此令牌永不过期,并继续刷新20分钟访问令牌 当他们注销时,问题就出现了。我已经读到最好的方法是将Redis上的JWT列入黑名单以存储撤销的密钥。然而,由于JWT从未过期,因此记录永远无法从Redis中删除,并且可能会开始占用我的大量内存Authentication 取消JWT而不过期,authentication,oauth-2.0,jwt,Authentication,Oauth 2.0,Jwt,我希望为一个移动应用程序使用基于令牌的身份验证,只要用户没有注销,该应用程序就可以让用户一直登录。我的方法是在用户登录/注册时创建JWT刷新令牌;此令牌永不过期,并继续刷新20分钟访问令牌 当他们注销时,问题就出现了。我已经读到最好的方法是将Redis上的JWT列入黑名单以存储撤销的密钥。然而,由于JWT从未过期,因此记录永远无法从Redis中删除,并且可能会开始占用我的大量内存 我应该担心这一点,还是Redis在这方面的内存效率很高?有没有更好的方法可以在不过期的情况下撤销JWT?JWT令牌是
我应该担心这一点,还是Redis在这方面的内存效率很高?有没有更好的方法可以在不过期的情况下撤销JWT?JWT令牌是一种自包含的令牌。这意味着它在到期之前是独立存在的,不能被撤销。因此,根据定义,它必须过期。因为当它落入坏人之手时,它将允许访问您的资源,而无法撤销它。因此,是的,您应该担心这个实现 这里的问题是您信任刷新令牌本身,因为它是JWT。实际上,您应该信任服务器。不是因为JWT不可信,而是因为刷新令牌不必是JWT 将刷新令牌保存在内存中,包括过期时间。您可以从内存中删除过期的令牌。这意味着只有内存中存在的令牌才能用于请求新的访问令牌。为了安全起见,请使用一次性刷新令牌 流程如下所示:
注销时从内存中删除刷新令牌。如果同时你想撤销访问权。只需从内存中删除刷新令牌。在5分钟内,用户必须再次登录。JWT令牌是一个自包含的令牌。这意味着它在到期之前是独立存在的,不能被撤销。因此,根据定义,它必须过期。因为当它落入坏人之手时,它将允许访问您的资源,而无法撤销它。因此,是的,您应该担心这个实现 这里的问题是您信任刷新令牌本身,因为它是JWT。实际上,您应该信任服务器。不是因为JWT不可信,而是因为刷新令牌不必是JWT 将刷新令牌保存在内存中,包括过期时间。您可以从内存中删除过期的令牌。这意味着只有内存中存在的令牌才能用于请求新的访问令牌。为了安全起见,请使用一次性刷新令牌 流程如下所示:
注销时从内存中删除刷新令牌。如果同时你想撤销访问权。只需从内存中删除刷新令牌。在5分钟内,用户必须再次登录。刷新令牌将不会授予对资源的访问权限,仅授予身份验证服务器以获取访问密钥。同样对于移动应用程序,一点也不注销是常见的做法。像Facebook或Snapchat一样,您可以永远保持登录状态。您建议如何实现此功能?刷新令牌不会授予对资源的访问权限,仅授予身份验证服务器以获取访问密钥。同样对于移动应用程序,一点也不注销是常见的做法。像Facebook或Snapchat一样,您可以永远保持登录状态。您建议如何实现此功能?