OAuth详细介绍

137 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情

上篇文章我们提到了 Oauth,我们今天来详细看看。

背景

你登录掘金,可以通过第三方账户登录,那么这个过程是怎么实现的。为什么通过微信能登录我的掘金账户?安全吗? 这个基本上都是通过 OAuth 来实现的。

什么是 OAuth

简单来说,OAuth 就是一个授权协议。即你授权给业务方A访问业务方B的数据。 但是有个问题,业务方A如何证明自己有你的授权,你直接把你的账号密码给他?不安全。这时候如果有一个临时证明,就嫩解决我们的问题。oauth 就是这样的一个授权协议,保证第三方软件只有在获得授权后,才能进一步访问授权者的数据。Oauth 就是通过颁发授权令牌的形式,为访问数据提供了方便的机制。

Oauth 是怎么运转的

这里我们强调下用到的版本是 oatuh2.0,我们简单看一下流程:

  1. A 需要授权给 B 访问 C 的数据
  2. B 向 C 发送一个授权请求
  3. A 在 C 处理这个授权请求
  4. 同意后生成一个授权 code 码,返回给 B
  5. B 通过 code 码请求 C 换一个访问令牌 access token
  6. 通过访问令牌请求 C 里存储的A的数据

可以看到主要的动作就是,生成 code 码,生成访问令牌,使用访问令牌。

所以 oauth 的核心就是,颁发访问令牌,使用访问令牌。

所以说我们要掌握 oauth 的三个要点,就掌握了 oauth 的核心。

  1. oauth 最关键的就是令牌机制,只有拿到了访问令牌,才能访问数据
  2. 现在都是通过 api 访问数据,所以第三方软件通过 oauth 取得访问权限后,就相当于用户把把这些权限委托给了第三方公司。
  3. oauth 的核心,就是颁发和使用令牌,不用直接使用密码,这大大增加了安全性。