(1)jwt登录拦截,需要在账户密码认证之前进行jwt认证,因此jwt拦截需要在 UsernamePasswordAuthenticationFilter 之前;
(2)jwt验证通过则不需要执行账户密码拦截,但是会执行两次jwt拦截,原因不清楚;
(3)如果jwt没有通过,将会执行账户密码拦截;
(4)每次账户密码验证通过后,在成功处理类里面。生成token ,然后将结果一起返回给前端,
这样下次用户需要访问某一API接口时,前端将该token放入请求头中即可,key值一般是 authorization ,
当然,前提是该token没有过期。
(5)如果token过期,前端需要写换成账户密码方式登录,再次获取有效的token即可,然后再获取访问指定的API接口,最后不要直接携带账户密码信息来访问API接口。
(6)工程我放在git仓库里了,地址 https://github.com/cen-xi/spring-security-JWT-usernamepassword