什么是JWT?
- JWT是一个开放标准,它定义了一种用户简介,自包涵的用于通信双方之间以JSON对象的形式安全传递信息的方法。可以使用HMAC算法或者是RSA的公钥密钥进行签名
- 简单来说:就是通过一定规范来生成token,然后可以通过解密算法逆向解密token,这样就可以后去用户信息
- 优点
- 生产的token可以包含基本信息,比如id,用户昵称,头像等信息,避免再次查库
- 存储在客户端,不占用服务端的内存资源
- 缺点
- token是经过base64编码,所以可以解密,因此token加密前的对象不应该包含敏感信息,如用户权限,密码等
- 如果没有服务端存储,则不能做登陆失效处理,除非服务端改密钥
- JWT格式组成 头部、负载、签名
- header+payload+signature
- 头部:主要是描述签名算法
- 负载:主要描述是加密对象的信息,如用户的ID等,也可以加些规范里面的东西,如iss签发者,expire 过期时间,sub面向的用户
- 签名:主要是把前面两部分进行加密,防止别人拿到token进行base解密后篡改token
关于jwt客户端存储
- 可以存储在cookie,loccalstorage和sessionStorage里面
yb课堂之分布式应用下登陆校验解决方案 JWT讲解 json wen token 《八》