当前位置: 首页 > 知识库问答 >
问题:

我是否应该显式发送刷新令牌以获取新的访问令牌-JWT

田马鲁
2023-03-14

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

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

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

假设我在登录10分钟后调用了对服务器的请求。由于访问令牌已过期,我收到了401错误响应。

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

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

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

共有1个答案

司寇祖鹤
2023-03-14

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

当您第一次请求访问令牌时,通常从向令牌endpoint发送令牌请求开始,在所谓的< code > 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/

在下面的教程中,还提供了如何在postman中使用刷新令牌的屏幕截图: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程序员。

 类似资料:
  • 问题内容: 在我的应用程序中,当用户成功登录时,我将返回访问令牌和刷新令牌。访问和刷新令牌的到期时间已分别设置为10分钟和40分钟。(我应该对这些值进行更多研究。这只是为了测试) 我使用了以下文章中描述的实现 http://www.svlada.com/jwt-token-authentication-with-spring- boot/ 假设我在登录10分钟后向服务器调用了一个请求。由于访问令牌

  • 我如何从第一次授权代码中获得刷新令牌和访问令牌?并且,我如何重用这个刷新令牌来获得一个新的访问令牌,以便使用Java API上传到Google Drive?这不是一个web应用程序。它在Java Swing代码中。

  • 目前访问类型处于联机状态。当我需要访问驱动器上的文件/文件夹时,我将浏览器重定向到Google URL并获得访问代码: 一切运转良好!但我只需要第一次重定向。 当我谷歌时,在google Drive API文档中,我发现我可以通过浏览器重定向获得刷新令牌,并将其保存在数据库中。(换句话说,我可以使用脱机访问)。 而且每次当我需要从google drive读取数据时,我使用刷新令牌获得访问令牌,而无

  • 我不熟悉,它代表。我混淆了它的两个术语:访问令牌和刷新令牌。 用户注册/登录站点后,我创建和。 将刷新标记保存在数据库或cookie中。 15分钟后,用户标记访问令牌过期。 如果用户空闲2小时,我将从cookie或DB中删除刷新令牌,否则我将使用刷新令牌续订访问令牌。 有什么优化的方法可以达到这个目的吗?

  • 我已经阅读了JWT和访问令牌和刷新令牌。我知道您必须在很短的时间(分钟)内设置访问令牌过期,并在过期时使用刷新令牌获取新的访问令牌。 我不清楚三件事: 谁检查访问令牌是否过期?客户端是否通过发送过期的访问令牌和刷新来检查并请求新的访问代码? 谁检查刷新令牌是否过期?(显然刷新令牌也需要过期,尽管需要更长的时间才能过期)。 在我看来,如果刷新令牌过期,则必须提示用户重新登录。在某些情况下(移动应用)