一图读懂OAuth2.0工作原理

1017次阅读  |  发布于9月以前

OAuth 2.0 是一种授权机制,主要是颁发令牌。应用程序通过颁发的令牌(也就是一串字符,类似于密码),就能够访问该用户在其他服务(如 Facebook 或 GitHub)上的数据,而不再需要用户的密码。

它跟密码的区别如下:

既然我们已经介绍了它是什么,让我们深入了解它是如何工作的。

该过程通常遵循6个步骤,涉及4个组件:

为了理解这个过程,让我们来看看一个游戏app是如何连接到玩家的 Facebook 账户。

第1步)请求访问:

在游戏中(客户端),玩家(用户)点击“与 Facebook 连接”按钮,以链接他们的个人资料并查找朋友。

第2步)重定向到服务:

游戏将玩家重定向到 Facebook(服务)的登录页面。

第3步)权限请求:

登录后,将向玩家显示游戏请求访问的数据,玩家可以选择允许或拒绝。

第4步)授权代码:

如果玩家给予批准,Facebook 将使用授权代码(来自授权服务器)将玩家重定向回游戏。该代码是一个临时凭据,证明玩家的同意。

第5步)交换代码以获取令牌:

游戏现在将授权代码与其自己的标识一起发送到 Facebook 的服务器。Facebook 识别授权代码和游戏的标识,并返回一个访问令牌。

第6步)使用令牌:

现在游戏可以使用访问令牌从 Facebook(从资源服务器)请求商定的数据,例如玩家的朋友列表。

在此过程中,玩家的 Facebook 凭据从未共享,但游戏能够从 Facebook 访问商定的玩家数据。这就是 OAuth 2.0 的作用;允许第三方应用程序以安全的方式从服务中访问数据,而无需共享用户的密码或其他敏感信息。

Copyright© 2013-2019

京ICP备2023019179号-2