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