1、创建TokenInterceptor
2.处理token
接下来就是处理token。
我们应该是获取前端的token并调用getTokenClaims方法,怎么获取凭证,看看能不能获取成功,没有获取成功怎么办,获取成功了怎么办。
3.添加配置web拦截
对于我们的WebMVC做了一个配置,这个配置在一开始服务器启动的时候就会加载,那对应的我们进行了一个添加自定义的拦截器会把我们自己封装的拦截器添加进去并且对于所有的路径进行拦截,那这样的话我们tokenInterceptor就生效了,一旦生效之后我们就会对于所有的请求进行拦截。
4.测试
去访问一个接口,我们看一下它这个拦截器有没有生效,所以我们把后端代码运行,启动服务器,再去localhost的去访问一下。
我们可以看到页面显示token不能为空,因为你现在你访问这个内部的接口,那对应的我们这都配置好了会经过我这个WebConfig里面的前置拦截器的一个处理所有路径都拦截,然后直接进入tokenInterceptor拦截器在这里判断不是login的,所以在这里拿我们的token没有拿到就直接返回了我们的401这样的一个错误。一个get请求就把我们整个拦截器就测试成功了。
5.把token添加到login接口中
如果正确的传入了这个token值的话是不是就能够拿到我们想要的这个数据了,所以这个token什么时候给呢,是一旦有人调用了我们的user login这个接口之后而且查询成功了再给前端返回的时候我们把这个token给它生成了并把这个token给它放在我们对应的代码中就行了,所以我们应该找一下当初我们写的controller中里面有一个UserController可以在这里面加上去。
所以现在只要你登录成功了,list.isEmpty这里为假的话,list就在这里往下走了我们取出来它里面的第一个元素list.get(0),并且生成一个token。把我们这里面存的这username放在token中,这样的话我们再给currentUser这个对象设置我们的token并给前端返回回去。所以只要你登录成功我是真的给你返回我生成的这个token。
6.测试
在Apifox中我们把这个token测试一下能不能生成,因为我要请求的就是我这个login
token时间过期了无效