- 前言
- 通过这篇文章你将学到什么?
- 什么是认证?
- 什么是授权?
- 什么是鉴权?
- 什么是权限控制?
- 认证、授权、鉴权和权限控制的关系?
- 1. HTTP 基本鉴权
- 2. Session-Cookie 鉴权
- 2.1 什么是 Cookie
- 2.2 什么是 Session?
- 2.3 Session-Cookie 的认证流程图
- 2.4 Session-Cookie 认证步骤解析
- 2.5 Session-Cookie 的优点
- 2.6 Session-Cookie 的缺点
- 2.7 使用场景
- 2.8 前端常用的 Session 库推荐
- 3. Token 鉴权
- 4. JWT(JSON Web Token)鉴权
- 5. 单点登录(Single Sign On)
- 6. OAuth 2.0
- 6.1 什么是 OAuth 2.0?
- 6.2 授权码模式
- 6.3 隐藏式模式(Implicit Grant)
- 6.4 用户名密码式模式(Password Credentials Grant)
- 6.5 客户端模式(Client Credentials Grant)
- 6.5 授权模式选型
- 7. 联合登录和信任登录
- 8. 唯一登录
- 9. 扫码登录
- 10. 一键登录(适用于原生 APP)
- 总结
一键登录步骤详解
- SDK 初始化: 调用 SDK 方法,传入平台配置的 AppKey 和 AppSecret
- 唤起授权页: 调用 SDK 唤起授权接口,SDK 会先向运营商发起获取手机号掩码的请求,请求成功后跳到授权页。授权页会显示手机号掩码以及运营商协议给用户确认。
- 同意授权并登录: 用户同意相关协议,点击授权页面的登录按钮,SDK 会请求本次取号的 Token,请求成功后将 Token 返回给客户端
- 取号: 将获取到的 Token 发送到自己的服务器,由服务端携带 Token 调用运营商一键登录的接口,调用陈工就返回手机号码。服务端用手机号进行登录或注册操作,返回操作结果给客户端,完成一键登录。
三大运营商开放平台:
- 移动 – 互联网能力开放平台
- 电信 – 天翼账号开放平台
- 联通 – WO+ 开放平台由于国内三大运营商各自有独立的 SDK,所以会导致兼容方面的工作会特别繁琐。如果要采用一键登录的方案,不妨采用第三方提供了号码认证服务,下列几家供应商都拥有手机号码认证能力:
注意:
在认证过程中,需要用户打开蜂窝网络,如果手机设备没有插入 SIM 卡、或者关闭蜂窝网络的情况下,是无法完成认证的。所以就算接入一键登录,还是要兼容传统的登录方式,允许用户在失败的情况下,仍能正常完成登录流程。
总结
在学习了解上面的 10 种鉴权方法后,我们简单概括一下
HTTP 基本认证
适用于内部网络,或者对安全要求不是很高的网络;Session-Cookie
适用于一般中大型的网站(移动端 APP 除外);Token
和JWT
都适用于市面上大部分的企业型网站,JWT 效能会优于 Token;单点登录
适用于子系统较多的大型企业网站;OAuth 2.0
适用于需要快速注册用户型的网站;扫码登录
适用于已完成部署了三端的企业;一键登录
适用于原生 APP;
码字实在不易,其中如若有错误,望指出,感谢每一位亲爱的您查阅 [手动比心] ~
作者:易师傅