# 前言: Oauth2.0 的四种方式 授权码模式。这是最常用的一种方式,前端对第三方应用请求一个授权码 code ,第三方应用将授权码 code 发到后端,然后后端用这个授权码 code 去请求一个用户令牌 token ,保证通信交换都在后端完成,令牌对用户不可见。 简化模式。比上面少了授权码的步骤,在浏览器中直接申请认证 token ,令牌对用户是可见的。 密码式。直接把第三方账号密码交给 A 网站去登录,只建立在用户极度信任网站的前提下。 凭证式(命令行)。适用于没有前端的命令行应用,即在命令行下请求 token 。 Google Oauth 文档明确指出 Web 应用只能使用...

# Promise Promise 是在 ES6 被引入用于简化异步编程的一个语言特性。它是一个对象,表示某个异步操作的结果,因此它有一些状态分别为 pending(待定) 、 fulfill(兑现) 和 reject(拒绝) 。它只可能从 pending->fuifill/reject ,也就是说一旦这个 Promise 被 settle(敲定) ,就不会再被改变了。 # 好处 传统的异步编程如果需要多次回调,会嵌套形成回调地狱,而在下面说到的 Promise 链就可以解决这个问题。其次传统异步编程如果想要捕获异常错误,需要使用回调参数层层传递错误,而 Promise...

# 第三方登录 用户想要登录 A 网站,A 网站需要获取用户某个第三方平台的信息(头像、昵称等)。所以用户需要 “登录” 第三方平台才能获取到对应的信息,再把信息给到 A 网站。 # 为什么要用到 Oauth? 通过上面的需求,最简单的方法用户给予 A 网站第三方应用的账号密码,让 A 网站去登录再取得信息,这显然是不够安全的。 所以有了 Oauth 授权,简单来说是:A 网站请求授权,用户同意授权,然后第三方应用会生成一个令牌 code,它的作用和密码类似,但是令牌权限有限,并且是有效期的,还可以随时被用户撤销,所以是一种很好的解决方案。 而 A...