参考:
常见登录鉴权方案(奇舞周刊)
你会做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编码
image.png
MDN: 401
image.png
image.png

1.1 实际测试

代码参考: 一文读懂HTTP Basic身份认证
image.png
image.png
输入账号 密码后,用户代理(浏览器会重新发起请求,并在请求头携带用户信息)
image.png

2 cookie + session

常见的网站都是这种方案, 在客户端存储cookie+ 服务端 存储session 配合来达成登录鉴权
image.png
image.png
image.png

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 网络的发展,随着物联网的崛起,可能会出现一种新的验证方式。