参考:
常见登录鉴权方案(奇舞周刊)
你会做WEB上的用户登录功能吗?(耗子叔)
http 四种鉴权方式简介
前端登录,这一篇就够了
理解用户认证鉴权1-cookie session
1 HTTP Auth Authentication
HTTP 提供一个用于权限控制和认证的通用框架。最常用的HTTP认证方案是HTTP Basic Authentication (参考wiki)
在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式。
在进行基本认证的过程里,请求的HTTP头字段会包含Authorization
字段,形式如下: Authorization: Basic <凭证>
,该凭证是用户和密码的组和的base64编码。
MDN: 401
1.1 实际测试
代码参考: 一文读懂HTTP Basic身份认证
输入账号 密码后,用户代理(浏览器会重新发起请求,并在请求头携带用户信息)
2 cookie + session
常见的网站都是这种方案, 在客户端存储cookie+ 服务端 存储session 配合来达成登录鉴权
3 JWT
为了解决 Session + Cookie 机制暴露出的诸多问题,我们可以使用 Token 的登录方式。
这种验证也是是在 App 兴起以后发展起来的,因为在 App 里没有浏览器环境,没有 cookie,那么客户端在进行了权限验证以后,就把这个登录凭证,也就是 Token 直接存在了客户端,并且在每次请求服务器的时候都把它带上。
token可以保存在客户端任何地方,比如放在cookie(当然不建议) 或者 sessionStorage 或者 localStorage等
现在前后端分离模式下,受cookie同源策略的限制,更多的使用token这样鉴权
最常用的 Token 验证方式,就是 JWT(Json Web Token)
JWT 由三部分组成,分别是 header(头部),payload(载荷)(包含用户信息),signature(签证) 这三部分以小数点连接起来。
4 OAUTH
4.x facebook
JavaScript SDK
利用 JavaScript SDK 部署网页版“Facebook 登录”
总结
这 4 种方式,反映了互联网的发展历程。
第 1 种方式,这是一种最简单的用户名密码验证方式,反映了人们对信息私有化全新的需要,这是在互联网出现以后产生的需求。
第 2 种方式,以及加密算法的出现,反映了在公开的互联网上,人们对隐私、对信息保密的重视。这个时期单点登陆技术的出现,标志着互联网向分布式发展,开始出现海量用户产品。
第 3 种方式代表了移动互联网的崛起。
第 4 种方式代表了大平台作为基础账号存在,已经变成了一种事实,像 QQ、微信、Facebook 等等。
接下来随着 5G 网络的发展,随着物联网的崛起,可能会出现一种新的验证方式。