2017-07-07 68 views
2

在我的应用程序中,当用户成功登录时,我会返回访问令牌和刷新令牌。访问和刷新令牌的到期时间分别设置为10分钟和40分钟。 (我应该做这样的价值观一些更多的研究。这只是用于测试)我是否应该明确发送刷新令牌以获取新的访问令牌 - JWT

我以前在下面的文章中描述的实施

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

比方说,我调用服务器的请求后10分钟因为访问令牌已过期,所以我得到了401错误响应。

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

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

我发现很难理解来自我在网上找到的资源的刷新令牌行为的性质。请在这些问题上澄清我。

回答

6

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

当您第一次请求访问令牌时,通常首先向令牌端点发送令牌请求,如果请求头中包含用户凭证的所谓Resource Owner Password Credentials Grant(例如,

grant_type=password&username=user1&passowrd=very_secret 

当访问令牌过期时,您必须请求新的访问令牌。这个时候,有一个刷新令牌,该令牌仍然有效,你就不再需要用户凭据,但发送

grant_type=refresh_token&refresh_token=<your refresh token> 

代替。 这样您就不需要在客户端存储用户凭据,也不需要再次使用登录过程来打扰用户。 正如您所知的到期时间,您还可以实施一种机制在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程序员。

+0

你可以给我一个提示,我应该如何使用邮递员这样的工具发送刷新令牌。它取决于服务器如何实施? – vigamage

+0

我在回答中增加了更多信息,尤其是。一个教程的链接,也说明了邮递员刷新令牌的处理 – jps

+0

这是否回答您的问题,或者仍然不清楚? – jps