在腾讯云实践serverless设置跨域的时候,看到一个选项鉴权类型:OAuth2.0,于是进行了一系列的搜索实践。
OAuth2.0: 是一个关于授权的开放网络标准协议;位于客户端和服务器提供商之间的授权层处允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。
上面的这段话在用户这边的实例体现就是:比如你打开豆瓣登录,会看到下排有一排第三方登录(QQ,微信...)点击下方图标,跳转到第三方登录页面,点击授权登录之后跳回豆瓣页面并成功登录。
获取资源服务器令牌token的方式有四种:授权码,隐藏式,密码式,客户端凭证
授权码是最常见最安全的授权方式
QQ第三方登录整个流程如下图所示:
微信第三方授权登录流程:
(1) 先去微信开放平台 创建一个网站应用,填写备案过的域名(回调只需要填域名即可,不需要具体到页面路径)审核通过后,可以得到AppID, AppSecret
(2) 网站跳转:
open.weixin.qq.com/connect/qrc…
携带 appid, redirect_uri , (state参数可选)请求获取code。
(3) 用户授权之后,会跳回回调地址,并携带code
(4) 获取到code之后,网站跳转
api.weixin.qq.com/sns/oauth2/…
获取access_token, openId
(5) 再根据access_token, openId去获取用户信息