用户已登录Oauth提供程序时的OAuth流

时间:2017-01-20 17:36:19

标签: oauth oauth2

因此,使用授权授权类型的基本OAuth2流通常如下所示(假设OAuth Client = Quora,OAuth Server = Google,用于例如目的):

  1. 用户转到客户端,重定向到服务器登录页面进行身份验证。
  2. 用户登录到服务器,服务器向客户端返回authorization_code。
  3. 客户端然后使用client_id,client_secret和authorization_code与服务器进行调用以获取令牌。
  4. 服务器使用令牌验证并回复。
  5. 客户端现在可以使用令牌从服务器访问api / resources。
  6. 现在,如果用户已登录,先说服务器,则尝试访问客户端,

    1. 客户如何知道用户已登录服务器,(因为客户端无法从服务器域访问cookie)?
    2. 客户从哪里获取授权码以获取访问令牌?

1 个答案:

答案 0 :(得分:4)

好问题。这是发生的事情:

  1. 将客户端重定向到“服务器”页面以进行授权。
  2. 服务器(Google)仅在浏览器中为THEIR域设置了Cookie(从上次开始),并且可以看到用户的信息。
  3. 服务器(Google)生成新的授权码,并使用该代码将BACK重定向到客户端webapp。
  4. 然后,客户端应用程序使用client_id,client_secret和NEW授权代码令牌对服务器进行API调用,并获取新的访问令牌。
  5. 客户端应用程序然后创建一个cookie(或使用本地存储)来存储这个新的访问令牌并让用户保持登录状态。