主流的前后端分离项目中用户鉴权最常用的是目前最流行的跨域认证解决方案---JWT(JSON WEB TOKEN)
图解:
用户的信息通过Token字符串的形式保存在客户端浏览器中。
服务器通过解析Token字符串的形式来认证用户的身份。
JWT通常由三部分组成,分别是Header (头部)、Payload (有效荷载)、Signature (签名)。
三者之间使用英文的"." 分隔,格式如下:
Payload 部分才是真正的用户信息,它是用户信息经过加密之后生成的字符串。
Header 和Signature是安全性相关的部分,只是为了保证Token的安全性。
首先浏览器客户端收集账号和密码存放到HTTP请求体中并向后端服务器发起登录请求
服务器接收到请求,获取到HTTP请求体中的账号和密码到数据库去验证用户和密码是否正确
服务器验证成功后,服务器会根据用户的信息进行生成该用户的token字符串并通HTTP响应体将该token字符串返回给客户端浏览器
客户端通过HTTP响应体获取Token字符串后可以把它存储在浏览器客户端中,比如Cookie或者LocalStorage里
登录成功之后客户端每次向后端服务器请求资源的时候都需要带上客户端浏览器存储的Token,一般把token字符串通过挂载在HTTP请求头中的Authorization属性中进行发送给后端服务器
后端服务器接收到请求,首先会对请求进行拦截,验证客户端请求头里的Token,如果验证成功,就会向客户端返回请求的数据,如果未携带token或者token失效,就会向客户端返回http401状态码
优点:
缺点: