Authentication 如何在jwt身份验证中使用刷新令牌
我对实现刷新令牌有一些疑问。我找了很多,但什么也没找到:Authentication 如何在jwt身份验证中使用刷新令牌,authentication,jwt,refresh-token,Authentication,Jwt,Refresh Token,我对实现刷新令牌有一些疑问。我找了很多,但什么也没找到: 刷新令牌必须使用jwt,还是可以是散列字符串?在刷新令牌中使用jwt有什么好处 刷新令牌是否应该有过期时间?我想为记住我功能使用刷新令牌,因此如果用户在一个月后返回网站或移动应用程序,他应该能够继续作为登录用户 我必须向客户端发送刷新令牌吗?(我们将其存储在数据库中,并在注销时将其删除) 我使用JWT令牌进行刷新。它作为访问令牌有不同的声明。此外,我还存储了一些refreshKey声明,这些声明也存储在数据库中。这种方法允许我撤销这个令牌
jwt
,还是可以是散列字符串?在刷新令牌中使用jwt
有什么好处记住我
功能使用刷新令牌,因此如果用户在一个月后返回网站或移动应用程序,他应该能够继续作为登录用户我使用JWT令牌进行刷新。它作为访问令牌有不同的声明。此外,我还存储了一些
refreshKey
声明,这些声明也存储在数据库中。这种方法允许我撤销这个令牌以防万一(例如用户阻塞功能)
我使用JWT令牌进行刷新。它作为访问令牌有不同的声明。此外,我还存储了一些
refreshKey
声明,这些声明也存储在数据库中。这种方法允许我撤销这个令牌以防万一(例如用户阻塞功能)
是,您必须将其发送到客户端,以保持体系结构无状态
:刷新令牌必须保存在数据库中。所以我们可以处理注销功能。所以你的句子没有意义。由于我们必须在数据库中保存刷新令牌,我们不需要验证它们,所以我们不必在刷新令牌中使用jwt
。我遗漏了什么吗?您只能从数据库中的刷新令牌保存一个声明,而不能保存整个令牌<代码>{iss:“iss值”,aud:“aud值”,exp:1553521788,refreshKey:“存储在db中的密钥”}我的问题就在这里,为什么我们不向用户发送refreshKey
?为什么我们需要验证它(作为jwt)?我们可以在db中保存refreshKey
,将其发送给用户,并在用户想要注销时从db中删除。对不起,我可能有点太狭隘了:)我使用的方法是,如果用户一个月不使用应用程序,他将注销。但如果你不想让他永远登录,你就不需要过期的刷新令牌。是的,你必须将其发送给客户端,以保持架构无状态。
:刷新令牌必须保存在数据库中。所以我们可以处理注销功能。所以你的句子没有意义。由于我们必须在数据库中保存刷新令牌,我们不需要验证它们,所以我们不必在刷新令牌中使用jwt
。我遗漏了什么吗?您只能从数据库中的刷新令牌保存一个声明,而不能保存整个令牌<代码>{iss:“iss值”,aud:“aud值”,exp:1553521788,refreshKey:“存储在db中的密钥”}我的问题就在这里,为什么我们不向用户发送refreshKey
?为什么我们需要验证它(作为jwt)?我们可以在db中保存refreshKey
,将其发送给用户,并在用户想要注销时从db中删除。对不起,我可能有点太狭隘了:)我使用的方法是,如果用户一个月不使用应用程序,他将注销。但如果你不想让他永远登录,你就不需要过期的刷新令牌。