我应该明确发送刷新令牌以获得新的访问令牌 - JWT

vig*_*age 15 spring-security access-token jwt spring-boot refresh-token

在我的应用程序中,当用户成功登录时,我返回访问令牌和刷新令牌.访问和刷新令牌的到期时间分别设置为10和40分钟.(我应该对这些值做更多的研究.这只是为了测试)

我使用了下面文章中描述的实现

http://www.svlada.com/jwt-token-authentication-with-spring-boot/

假设我在登录10分钟后向服务器发出请求.由于访问令牌已过期,我收到401错误响应.

但是,作为初学者,我发现很难理解是否需要显式发送刷新令牌以获取新的访问令牌.如果我应该这样做,怎么做?我应该发送刷新令牌作为什么?标题?

或者,当我的请求被服务器拒绝,因为访问令牌已过期,刷新令牌本身是否会自动向服务器发送请求以获取新的访问令牌?

我发现很难从网上找到的资源中理解刷新令牌行为的本质.请在这些问题上澄清我.

jps*_*jps 11

是的,刷新令牌用于获取新的访问令牌.

当您第一次请求访问令牌时,通常首先向令牌端点发送令牌请求,如果Resource Owner Password Credentials Grant在请求头中使用用户凭据进行调用,例如

grant_type=password&username=user1&passowrd=very_secret
Run Code Online (Sandbox Code Playgroud)

当访问令牌过期时,您必须请求新的访问令牌.这次,使用仍然有效的刷新令牌,您不需要再次使用用户凭据,而是发送

grant_type=refresh_token&refresh_token=<your refresh token>
Run Code Online (Sandbox Code Playgroud)

代替.这样,您无需在客户端存储用户凭据,也无需使用登录过程再次打扰用户.如您所知,到期时间,您还可以实施一种机制,在access_token过期之前刷新令牌.

此外,您可以阅读此内容以获取有关该主题的更多信息:https://auth0.com/learn/refresh-tokens/

在下面的教程中还有如何在邮递员中使用刷新令牌的屏幕截图:http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web -api-2-owin /(向下滚动到第6步)一般来说,我可以推荐阅读Taiseer Joudeh的教程,特别是.对于C#,ASP.NET和Angular程序员.