带刷新令牌工作流问题的Java Spring JWT
关于使用JavaSpring的API JWT刷新令牌工作流,我有一些问题 到目前为止,我已经做到了:带刷新令牌工作流问题的Java Spring JWT,java,spring,spring-security,oauth,jwt,Java,Spring,Spring Security,Oauth,Jwt,关于使用JavaSpring的API JWT刷新令牌工作流,我有一些问题 到目前为止,我已经做到了: 用户登录到/users/login-如果成功,将返回带有2个标题的响应授权和刷新。其中包含2个令牌-一个短30分钟到期,另一个长4小时到期 然后,他可以使用授权标头访问所有其他端点 如果在某个点访问端点时,他的令牌过期,他将收到一个错误(未经授权) 并且必须使用提供给他的刷新令牌请求/token/refresh 问题: 我已经对其进行了设置,以便授权令牌具有声明:type=auth和 刷新令牌
- 我已经对其进行了设置,以便授权令牌具有声明:type=auth和 刷新令牌有一个声明:type=refresh。最好的方法是什么 区分这两个标记李>
- 步骤3(而不是未经授权)中的错误应该是什么,以便将其与没有有效令牌的请求区分开来
- /令牌/刷新当前不要求身份验证。应该吗
- /token/refresh端点应该是带有标头的POST、带有参数的POST或带有标头的GET
一般来说,GET端点应该是只读的,并且不改变任何资源。POST和PUT端点用于突变。在本文中,我将使用带有参数的帖子和专用URL,例如/token/refresh非常感谢。如果我不想在数据库中存储刷新令牌,有没有办法呢?是的,当然可以将刷新令牌表示为JWT。但有一个陷阱。JWT的有效期是“用石头写的”。它将在4小时后失效。然而,当您希望刷新令牌很快过期时,有很多场景。示例一:显式注销->用户按下“注销”按钮。示例二:您希望立即禁止该帐户,并且不允许用户再使用刷新令牌。示例三:刷新请求看起来可疑->它来自不同的用户代理、不同的国家/地区…您可以在Thank You very查看完整示例much@ygor很好的回答,感谢您的示例,但是在示例中,将jwt令牌传递给需要令牌的任何端点都会返回401,原因可能是什么。