用户已登录 Oauth 提供程序时的 OAuth 流程 [英] OAuth flow when user is already logged in to the Oauth Provider

查看:63
本文介绍了用户已登录 Oauth 提供程序时的 OAuth 流程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

So, a basic OAuth2 flow using authorization grant type would normally go as follows, (assume OAuth Client=Quora, OAuth Server=Google, for eg. purposes):

  1. 用户转到客户端,被重定向到服务器登录页面进行身份验证.
  2. 用户登录Server,Server返回一个authorization_code给Client.
  3. 客户端然后使用 client_id、client_secret 和 authorization_code 调用服务器以获取令牌.
  4. 服务器验证并使用令牌回复.
  5. 客户端现在可以使用令牌从服务器访问 API/资源.

现在,如果用户已经登录说,Server first,然后尝试访问Client,

Now, if the user already logged in to say, Server first, then tries to access Client,

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

推荐答案

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

Good question. Here's what happens:

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

这篇关于用户已登录 Oauth 提供程序时的 OAuth 流程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆