vue3和springboot3下token验证出现的一些问题

今天在完成前后端分离项目的token验证时出现了一些小问题,让我们来看一看。

如何生成token我们就不说了,网上有很多教程,一般选择的依赖包二选一:jjwt或者是java-jwt,前者轻量级,后者功能更多更加复杂。

在生成token,我们需要将其放入到响应头中,我们需要在controller方法中加入参数:

HttpServletResponse response,这个参数是由springboot帮我们注入的,然后我们使用
response.addHeader("Authorization",token),向头中添加一个字段,前面是这个字段的名字,这个名字可以随便起,但是约定俗成是这个名字。然后前端使用axios拦截器来拦截并取出头中的信息,如下:

axiosInstance.interceptors.response.use(

    response => {

        const token = response.headers['Authorization']

        if(token){

            localStorage.setItem('token',token)

        }

        return response;

    },

    error => {

        return Promise.reject(error)

    }

)

但是经过我的测试,发现响应中读取不到我放入的Authorization属性,然后经过查阅发现,前端程序只能够读取允许的几个属性,自己添加的也不在内,所以我们需要在后端controller中添加一个语句:

response.setHeader("Access-Control-Expose-Headers","Authorization");

第一个参数是固定的关键词,第二个参数表示你想要前端读取到的属性。

设置成功之后,这下应该可以了吧,但是我发现虽然能够读取了,但是仍然读取不到,然后我看了一下,我设置的响应头中的属性是:Authorization,但是它自动改成:authorization,然后我将上面用于接收的大写改成了小写,终于能够正常接收了。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值