我对使用Java Spring实现API JWT刷新令牌的工作流程有一些疑问。
目前为止,我已经完成了以下步骤:
- 用户登录到/users/login-如果成功,则返回一个包含2个标头Authorization和Refresh的响应。其中包含两个令牌-一个短30分钟过期,一个长4小时过期。
- 然后,他可以使用Authorization标头访问所有其他端点。
- 如果在某个时刻访问端点时他的令牌过期,则会收到错误(未经授权)。
- 然后必须使用他获得的刷新令牌向/token/refresh发出请求。
问题如下:
- 我已将授权令牌设置为具有声明:type = auth,而将刷新令牌设置为带有声明:type = refresh。区分这两个令牌的最佳方法是什么。
- 步骤3中的错误应该是什么(而不是未经授权),以将其与没有有效令牌的请求区分开来?
- /token/refresh当前不要求身份验证。 这样做是否合适?
- /token/refresh端点应该是带有标头的POST、带有参数的POST还是带有标头的GET?