当前位置: 首页 > 面试题库 >

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

翟俊茂
2023-03-14
问题内容

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

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

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

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

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

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

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


问题答案:

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

第一次请求访问令牌时,通常是通过将令牌请求发送到令牌端点开始,以防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程序员。



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

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

  • 我正在尝试使用 NodeJS 构建 RESTful API,但在 api 调用期间无法理解使用令牌对用户进行身份验证的正确方法。在阅读了一些博客和文章后,我想出了这些方法: Access Token(AT)是包含唯一userId作为JWT有效负载的JWT令牌。1天后到期。 刷新令牌(RT)是使用uuid npm包的随机uuid。与用户文档一起存储在数据库中。 过程: 当用户登录/注册服务器发布新A

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

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