JWT概述

103 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情

前后端使用Token交互

image-20220331224939997

Token

就是通过对称加密,把用户id存到客户端,每次请求服务器带着id,服务器解密出来,正常使用

image-20220331225214533

jwt概述

什么是jwt

JSON web Token,通过数字签名的方式,以JSON对象为载体,在不同的服务终端之间安全的传输信息。

JWT有什么用?

JWT最常见的场景就是授权认证,一旦用户登录,后续每个请求都将包含JWT,系统在每次处理用户请求的之前,都要先进行JWT安全校验,通过之后再进行处理。

image-20220331225337168

demo

image-20220331225556733

解密

image-20220331225738573

JWT的组成

image-20220401104550156

第一部分

image-20220401104923591

第二部分

image-20220401104941831

注意:注意在 Payload中不能够存放铭感数据手机号码、密码Token对应存放在 Redis或者数据库中的数据。

第三部分

验证签名,防止篡改payload数据

JWT和TOKEN的区别

在token需要存入redis中,才能进行跨服务器的使用,而jwt不需要

  • token依赖于Redis查询数据信息,token存放 value数据比较安全的。
  • Jwt不需要依赖于服务器端,将数据信息内容直接存放在客户端(浏览器

Base64

底层原理

image-20220401105819006

对前两部分分别用base64编码转换再用'.'拼接,然后再把两者加盐加密,拼接为第三部分

image-20220401111314379

为什么用token不用账号密码

把token保存在客户端,这样服务端就是无状态的了,方便分布和扩展

token是存在session或者redis中的,也就是在内存中速度快

实操

加密

image-20220401112200763

image-20220401112235166

image-20220401112243044

解密

image-20220401112540077

获取payload数据

image-20220401112636787

客户端保存这个token,每次请求携带这个token,完成前后端交互。

\