用户已登录 Oauth 提供程序时的 OAuth 流程 [英] OAuth flow when user is already logged in to the Oauth Provider
本文介绍了用户已登录 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):
- 用户转到客户端,被重定向到服务器登录页面进行身份验证.
- 用户登录Server,Server返回一个authorization_code给Client.
- 客户端然后使用 client_id、client_secret 和 authorization_code 调用服务器以获取令牌.
- 服务器验证并使用令牌回复.
- 客户端现在可以使用令牌从服务器访问 API/资源.
现在,如果用户已经登录说,Server first,然后尝试访问Client,
Now, if the user already logged in to say, Server first, then tries to access Client,
- 客户端如何知道用户已经登录到服务器(因为客户端无法从服务器域访问 cookie)?
- 客户端从哪里获得授权代码以获取访问令牌?
推荐答案
好问题.这是发生的事情:
Good question. Here's what happens:
- 客户端被重定向到服务器页面进行授权.
- 服务器 (Google) 在浏览器中仅为他们的域设置了 cookie(从上次开始),并且可以看到用户的信息.
- 服务器 (Google) 生成新的授权代码,并使用该代码重定向回客户端网络应用.
- 客户端应用然后使用 client_id、client_secret 和 NEW 授权代码令牌对服务器进行 API 调用,并获取新的访问令牌.
- 客户端应用然后创建一个 cookie(或使用本地存储)来存储这个新的访问令牌并保持用户登录.
这篇关于用户已登录 Oauth 提供程序时的 OAuth 流程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文