OAuth入门指南
如果您曾经使用 Facebook 或 Google 凭证访问过网站,那么您就遇到过 OAuth。OAuth 是一种授权 Web 协议,用于授予网站访问您的部分个人信息或某些系统的权限。通常用代客泊车钥匙来比喻,但这对我来说毫无意义,因为我有一辆生锈的大众甲壳虫,不过我们不必担心。
如果您正在构建这样的网站,您需要向 OAuth 提供商(例如 Google 或其他)注册。他们会给您一个应用程序 ID 和密钥。这个密钥允许您与提供商进行 OAuth 通信。
过了很久,Joe Bloggs 出现了,想要访问你的网站。你的网站向 OAuth 提供商发送了一个请求(包含你的应用程序 ID 和密钥),并获得了一个对话令牌。
然后,您将用户重定向到 OAuth 提供程序(但需包含对话令牌和回调 URL,这些内容在您注册应用时已包含)。OAuth 会检查对话令牌和 URL,然后确定用户身份(例如,要求您登录),并显示一个同意屏幕:“您是否允许应用程序 X 访问您的 Y?” 您查看 Y 列表并选择“允许”(或“不允许”)。然后,OAuth 提供程序会通过浏览器向您的网站发送一个 HTTP POST,其中包含两个令牌:
- 访问令牌(代客密钥),允许您向 OAuth 提供商询问 Y 项
- 刷新令牌(用于访问令牌过期的情况,这种情况经常发生)
等一下!这些 Y 项怎么办?OAuth 提供商如何知道网站需要哪些权限?
OAuth 称之为“范围”。范围是指允许访问的用户“事物”的名称。它可以是用户名、电子邮件或一组访问权限。网站在执行 OAuth 时,会将一些范围添加到 OAuth 请求中,如果这些范围在允许列表中,则会将其呈现给用户。
基本上就是这样。还有一些其他细节之类的,但我的车又坏了,我得赶紧走了。
文章来源:https://dev.to/rmorschel/oauth-for-dummies