OAuth 刷新令牌如何在客户端工作?

时间:2021-01-05 13:48:07

标签: java spring-security oauth-2.0 oauth spring-security-oauth2

我已经实现了 Spring Oauth 2 服务器并为我的一项服务添加了授权。 我想明白, 当我打球时:

localhost:9191/oauth/token?grant_type=password&username=krish&password=kpass

我收到这样的回复:

{
    "access_token": "24a20377-2ce7-4c6c-a65c-87adf443854b",
    "token_type": "bearer",
    "refresh_token": "39da80da-83bb-49e1-8e6a-8432428637ad",
    "expires_in": 59,
    "scope": "READ WRITE"
}

并且我使用相同的 access_token 来验证我的客户端,如下所示:

localhost:8080/getName
Adding header :
Authorization : bearer 24a20377-2ce7-4c6c-a65c-87adf443854b

所以我的问题是在 60 秒(到期时间)后,我的客户将如何在刷新令牌的帮助下获得新令牌? (我假设客户端在同一个会话中)。 spring 是否使用其库或我们需要在服务器中添加的任何内容在内部处理它? 请帮忙!

1 个答案:

答案 0 :(得分:0)

客户端将发送 Refresh Token Grant 消息,如 this article 中所述。在 OAuth 中,授予是获得令牌的原因:

  • 您已实施上述密码授予
  • 大多数用户界面在用户登录后使用授权代码授权
  • 刷新令牌授予用于在访问令牌到期时进行静默更新

授予消息通常总是对令牌端点的 POST 请求。大多数人使用现成的授权服务器为您处理它们,因此您不必自己编写代码。