Token和Jwt的区别

254 阅读2分钟

一、Token基本原理

Token(就是加密的字符串,使用MD5,等不可逆加密算法,一定要保证唯一性)

生成过程:

1. 客户端使用用户名跟密码请求登录

2. 服务端收到请求,去验证用户名与密码

3。 验证成功,服务端会签发一个Token保存到(Session,redis,mysql…)中,然后再把这个 Token 发送给客户端

4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里

5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

6. 服务端收到请求,验证密客户端请求里面带着的 Token和服务器中保存的Token进行对比效验, 
   如果验证成功,就向客户端返回请求的数据

二、JWT基本原理

JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。
服务器通过使用保存的密钥验证JWTToken的正确性,只要正确即通过验证。

JWT包含三个部分: 

Header头部,Payload负载和Signature签名。
由三部分生成JwtToken,三部分之间用“.”号做分割。 校验也是JWT内部自己实现的 ,
并且可以将你存储时候的信息从JwtToken中取出来无须查库

过程:

1. 客户端使用用户名跟密码请求登录

2. 服务端收到请求,去验证用户名与密码

3. 验证成功,服务端会签发一个JwtToken,无须存储到服务器,直接再把这个JwtToken发送给客户端

4. 客户端收到JwtToken以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里

5. 客户端每次向服务端请求资源的时候需要带着服务端签发的JwtToken

6. 服务端收到请求,验证密客户端请求里面带着的 JwtToken, 如果验证成功,就向客户端返回请求的数据

三、Token和Jwt的区别

   Token需要查库验证token 是否有效,而JWT不用查库,直接在服务端进行校验。
因为用户的信息及加密信息,和过期时间,都在JWT里,只要在服务端进行校验就行,并且校验也是JWT自己实现的