OAuth2,refresh_token,尚不清楚其工作原理

问题描述 投票:0回答:1

这是一个纯理论上的问题。我正在使用Angular前端部分,该部分与Spring Boot Rest Service有关。授权过程是通过OAuth2进行的,它使用Keycloack服务器。我已经在我的应用程序中实现了该部分,该部分要求从Keycloak获取访问令牌,我也尝试在Postman中获取它。一切正常。现在,我看到在邮递员中我收到访问令牌,一个expires_in值(这两个值都清楚),一个refresh_token,一个refresh_expires_in和一个session_state。这3个最后值对我来说不太清楚。我试图了解这些。所以,直到现在,如果我正确理解:

1)我的Angular前端将用户凭据发送到Auth服务器(在我的情况下为Keycloack)以接收令牌,该令牌在给定的时间。

2)当我的Angular Frontend请求一些服务时后端,它发送请求本身(链接,参数等),并且也是令牌。

3)服务后端检查令牌并将令牌交给我的前端所需资源。

4)访问令牌可以在到期之前更新,这是刷新令牌的目的和刷新时间。

我到现在为止吗?现在,我读了一些教程(也在Stack Overflow中),但实际上我不明白上面提到的这3个值以及刷新系统是如何工作的。您能否仅从具体的角度解释我的工作原理?

1)令牌到期与会话到期无关。有两个不同的概念。我说的对吗?

2)实际上,令牌更新的过程如何?什么时候发生?每X秒或后端自动检查令牌是否有效,或者在每次登录时触发更新?

3)为了更新访问令牌,还刷新令牌应该发送到应用程序服务器。对吗?

4)我在令牌中看到的session_state的用途是什么通过邮递员回复?

非常感谢您的耐心等待,我阅读了一些教程,但是在某些方面我还是有些困惑。而且,在实施之前,我会完全理解这些概念。

angular oauth-2.0 refresh-token
1个回答
2
投票

会话中有几个阶段:

  • 用户登录以获取令牌
  • 使用访问令牌来调用API
  • 访问令牌过期,客户端收到401响应
  • 客户端通过获取带有刷新令牌的新访问令牌来处理401
  • 刷新令牌最终到期,访问令牌更新失败
  • 用户必须再次登录

[主要是了解消息-我的visual write up可能会帮助您理解这些消息-该文章适用于台式机应用程序,但消息基本相同。

出于兴趣,您的Angular应用可能不应该使用刷新令牌,而应使用SPA access token renewal solution

© www.soinside.com 2019 - 2024. All rights reserved.