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

How OAuth Refresh Token works at client side?

我已经实施了 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 是在内部处理它的库还是我们需要在服务器中添加的任何东西? 请帮忙!

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

  • 您已实施上述密码授予
  • 大多数 UI 在用户登录后使用授权码授予
  • 当访问令牌过期时,刷新令牌授予用于静默更新

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