① jwt和token区别
jwt和token区别为主要体现在接收的信息是否需要进入数据库查询信息。
Token需要查库验证token是否有效,而JWT不用查库,直接在服务端进行校验,因为用户的信息及加密信息,和过期时间,都在JWT里,只要在服务端进行校验就行,并且校验也是JWT自己实现的。
JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证JWT Token的正确性,只要正确即通过验证。
JWT包含三个部分: Header头部,Payload负载和Signature签名。由三部分生成Jwt Token,三部分之间用“.”号做分割, 校验也是JWT内部自己实现的。
Token基本原理:
1、客户端使用用户名跟密码请求登录。
2、服务端收到请求,去验证用户名与密码。
3、验证成功,服务端会签发一个Token保存到(Session,redis,mysql)中,然后再把这个Token发送给客户端。
4、客户端收到Token以后可以把它存储起来,比如放在Cookie里或者Local Storage里。
5、客户端每次向服务端请求资源的时候需要带着服务端签发的Token。
6、服务端收到请求,验证密客户端请求里面带着的Token和服务器中保存的Token进行对比校验, 如果验证成功,就向客户端返回请求的数据。