Spring boot oauth2 auth服务器会话

时间:2018-01-06 18:54:08

标签: spring-oauth2

我试图了解Spring引导如何使用http会话来管理oauth授权代码流。

据我所知,在用户通过/ login表单提交凭据后,spring将保留身份验证对象,以便在重定向浏览器以检索授权代码时检索它。

我不明白的是,如果浏览器需要在调用此流程时将jsession cookie发送到服务器或http基本身份验证标头。

例如,如果我想通过curl手动启动流程,我是否需要指定任何特殊标题?

1 个答案:

答案 0 :(得分:0)

它不使用HTTP会话来持久化它,客户端ID和授权代码(在用户进行身份验证后传递回客户端应用程序的代码)用于标识身份验证对象。然后使用授权码来获取访问令牌。

所以:

  1. 客户端应用程序重定向到auth服务器,并传入其客户端ID。
  2. 用户使用auth服务器上的用户名和密码进行身份验证,该服务器根据代码和客户端ID存储身份验证,并将授权代码作为重定向URL上的请求参数传递回调用应用程序。
  3. 客户端应用程序回调auth服务器,使用它的客户端ID和机密进行身份验证并传入授权代码。然后将其交换为访问(和可能的刷新)令牌。
  4. 如果应用程序需要用户详细信息,则客户端应用程序会调用用户详细信息端点,并使用现在具有的访问令牌进行身份验证。