我们知道的登录方式:1.账号密码 2.手机号验证码 3.第三方登录...
此篇记录下第三方登录。
一、什么是第三方登录
所谓的第三方登录,即使用第三方平台登录目标应用。第三方平台包括国内的微博、微信、QQ、Gitee等,国外的Facebook,Twitter等。
二、什么是OAuth2.0
1.定义
OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方 应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。OAuth在全世界得到广泛应用,目前的版本是2.0版。
2.授权模式:
客户端必须得到用户的授权(authorization grant),才能获得令牌(access token)。OAuth 2.0一共分成四种授权类型(authorization grant)
- 授权码模式(authorization code)
- 简化模式(implicit)
- 密码模式(resource owner password credentials)
- 客户端模式(client credentials)
授权码模式和密码模式比较常用。
三、实现流程
1.界面跳转流程
a.用户打开应用网站登录页,选择第三方平台登录;
b.pc端直接跳到授权界面,手机端识别二维码后跳转到授权页面;
c.用户点击-确认授权,跳转到网站主页。
如图所示:
2.授权认证过程
这里,我们主要介绍一下授权码模式:
授权码模式是功能最完整,流程最严密的授权模式。它的特点是通过客户端的后台服务器,与“服务提供商”的认证服务器进行互动。
授权流程可以参考下面的流程图,其中 Target Application 指目标应用或客户端,Resource Owner 指用户,Authorization Server 是开放平台的授权服务器,Resource Server 是开放平台的 API 服务器。
1.用户打开客户端以后,客户端要求用户给予授权。
2.用户同意给予客户端授权。
3.客户端使用上一步获得的授权,向认证服务器申请令牌。
4.认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
5.客户端使用令牌,向资源服务器申请获取资源。
6.资源服务器确认令牌无误,同意向客户端开放资源。