概述
在使用JWT作为单点登录验证媒介时,为保证安全行,建议将JWT的信息存放在HTTP的请求头中,并使用https请求链接进行加密传输,如下所示:
问题
由于项目是前后端分离的,不可避免的就产生了跨域问题,导致Authorization始终无法添加到请求头中去,出现的情况如下所示:
原因:简单来说,在进行跨域请求的时候,如图自定义请求头,那么HTTP请求会发出一个预检请求,即OPTIONS请求,访问服务器是否允许该请求,如果游览器没有进行跨域设置,则就会出现如上图所示的错误。
解决办法:
1.引用跨域处理的jar包
2.在web.xml中添加如下配置:
注意要在下面的位置添加上自定义的请求头字段:Authorization
这样游览器请求的时候就会成功响应预检请求
应用
后端返回的token可以设置在游览器的cookie或者localStroge里。
通过Ajax添加Token到Header中的方法:
1.方法一:
2.方法二:
3.Anjular添加Token到Header中的方法
自定义Http方法,全局使用自动添加Token到Header中,或者使用拦截器,方法类似