这个是后端的写法 希望能对大家能有帮助
1.第一步在pom.xml中导入JWTT依赖
这里和大家简单说一下什么是JWT JWT 全称是JSON Web Token
一个JWT就是一个字符串 是由 头部(Header)、载荷(Payload)与签名(Signature)组成
Header (头部): 描述 JWT 的元数据,定义了生成签名的算法以及 Token 的类型。
Payload(载荷) : 用来存放实际需要传递的数据
Signature(签名) :服务器通过Payload、Header和一个密钥(secret)使用 Header 里面指定的签名算法 ( 默认是 HMAC SHA256)生成。
<!-- JWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
第二步 写一个JWT工具类
密钥串可以随便设置, 作用是生成签名用的
可以写一个main方法测试一下
利用zs生成的JWT可以打印调用一下方法 看看是不是zs 和FALSE
第三步 写拦截器
这里出现了OPTIONS 简单和大家说一下什么是OPTIONS
从前端的角度看options
options请求是浏览器的一个机制,不是前端开发人员说不想发options请求就不发的。当你这个post请求跨域的时候,那options请求就出现了(当然还有put、delete请求也会发送预检请求,这些比较少见,在这里我就只谈post)。options请求就去问问浏览器,我想跨域ok不ok?如果后端设置了允许该域名跨域,那么接着post请求就正常发送。否则你就会在控制台看到该请求跨域的错误,类似于下面这种
就这么简单,一句话概括:当跨域的时候,post请求之前浏览器就会提前发送options请求,就是询问服务器我能否顺利发送跨域post请求,如果不能,浏览器Console就看到跨域错误提示,如果能,post请求就顺利发送。
后端配置跨域后,options请求发到服务器,服务器就会返回,但是没有response data,你可以当作是浏览器和服务器的悄悄的对话,不是前端开发人员手动控制的,因为options也不会命中后端某个接口。
4.在MvcConfig中配置拦截器(实现WebMvcConfigurer接口的addInterceptors()方法)
登录的接口在这里就不写了,比较简单 Con他roller层 等等