JWT认证
1. 优势
服务端无状态
一般的session认证方式需要在服务端保存session数据,导致服务端有状态,
JWT的方式是在客户端保存认证数据,服务端只对认证数据做校验,服务端不存储任何数据,这也是JWT的核心,同时也解决了跨域的问题。
2. 原理
JWT 的原理是,服务器认证以后,生成一个 JSON 对象,发回给用户,就像下面这样。
{
"姓名": "张三",
"角色": "管理员",
"到期时间": "2018年7月1日0点0分"
}
以后,用户与服务端通信的时候,都要发回这个 JSON 对象。服务器完全只靠这个对象认定用户身份。为了防止用户篡改数据,服务器在生成这个对象的时候,会加上签名(详见后文)。
服务器就不保存任何 session 数据了,也就是说,服务器变成无状态了,从而比较容易实现扩展。
http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
JWT数据结构:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.Sfl