通过JWT实现认证流程
1.前端输入用户名、密码后台登录
2.后端根据用户ID生成Token、返回给前端
3.前端ajax请求、通过header头部设置 Authorization :token
4.后端通过Filter、拦截所有请求、处理请求是否合法(token失效、token为空、token过期)
前端ajax关键代码
$.ajax({
headers: {
"Authorization": token
},
url:url,
contentType: "application/json",
dataType: "json",
data: JSON.stringify(param),
cache: false,
processData: false,
async:status,
type:"put",
success:function (res) {
},
error:function(){
},
statesCode:{
999:function () {
//token 异常处理
},
888:function () {
//token 异常处理
}
}
});
注意事项:由于前后端存在跨域问题、后端需要设置一下支持跨域、并且针对OPTIONS请求特殊处理一下、还需要将filer优先级设置-1、优先执行跨域过滤器
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "*");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "*");
if (request.getMethod().equals("OPTIONS")) {
response.setStatus(HttpServletResponse.SC_OK);
return;
}