身份认证
身份认证(Authentication)又称“身份验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确认。
目的:为了确认当前所声称为某种身份的用户,确实是所声称的用户。
身份认证方案:
-
Session 认证机制(服务端渲染推荐)
-
JWT 认证机制(前后端分离推荐)
1. Session 认证机制
原因:HTTP 协议的无状态性。
HTTP 协议的无状态性,指的是客户端的每次HTTP请求都是独立的,连续多个请求之间没有直接的关系,服务器不会主动保留每次HTTP请求的状态。
解决:Cookie
Cookie 是一段不超过 4KB 的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制 Cookie有效期、安全性、使用范围的可选属性组成。
不同域名下的 Cookie 各自独立,每当客户端发起请求时,会自动把当前域名下所有未过期的 Cookie 一同发送到服务器。
1.1 Cookie 工作原理:
在身份认证中,客户端第一次请求服务器的时候,服务器通过响应头的形式,向客户端发送一个身份认证的 Cookie,客户端会自动将 Cookie 保存在浏览器中。随后,当客户端浏览器每次请求服务器的时候,浏览器会自动将身份认证相关的 Cookie,通过请求头的形式发送给服务器,服务器即可验明客户端的身份。
但是,浏览器中提供了读写 Cookie 的 API,因此,存储在浏览器中的 Cookie 很容易被伪造,不具有安全性。千万不要使用Cookie存储重要且隐私的数据!
故能够在服务端验证 Cookie 的 Session 重要性不言而喻。
1.2 Session 工作原理:
总结:Cookie + Session 就是 Sesion 认证机制的核心。
本文来自博客园,作者:奇天月,转载请注明原文链接:https://www.cnblogs.com/qitianyue/p/16189157.html