session
客户端浏览器将用户名,密码发送给服务器
服务器将用户信息存储在session中,生成一个sessionid
服务器将sessionid返回给浏览器,将sessionid存储到cookie中
下次请求时,携带该cookie发送给服务器
服务器根据sessionid获取到用户信息,登陆成功
缺点:
1.session存储在内存里,占用内存
2.sessionid存储在cookie不安全,容易产生CSRF问题(CSRF:跨域伪造请求攻击)
3.限制服务器扩展, 各服务器不能保持一致
jwt token
客户端浏览器发送登录请求
服务器根据用户信息生成jwt token
将生成的jwt token 返回给浏览器 做本地存储
下次请求时携带该token发送给服务器
服务器进行解码验证
优点:
token是保存在客户端本地的,不占用服务器内存
具有哈希加密的签名,相对来说是安全的
因为使用的同一个key哈希加密的,不同服务器也可以使用同一个key进行解码,有利于服务器的扩展