关于axios请求拦截

来源:6-2 通过jwt生成token

Lemon甜橙君

2021-05-28

图片描述
有两个疑问,1、如果像老师这样写的话,在登录的时候,也会走此逻辑,那么此时会取不到token的值,要做下判空和默认处理;2、就算做了这些处理,那么在调用login接口的时候,因为token此时还没生成,所以headers还是会带有Authorization: 'Bear’这个信息,这样会不会有什么影响?有什么办法能够在调用login接口的时候,不带有Authorization字段呢?

写回答

2回答

河畔一角

2021-05-28

首先后台已经过滤掉了登录接口,也就是后台是不会检验登录有没有token的所以登录带不带都没有作用。
其次,登录如果不想带,可以根据路由地址做个判断,在前端把header过滤掉。

0
4
河畔一角
如果结构赋值报错,有两种方法可以试一下: 1. 可以加一个判断,不做解构,直接判断对象为true,然后再过去它的token 2. 解构的时候给token加一个默认值
2022-01-11
共4条回复

Lemon甜橙君

提问者

2021-05-28

想到了一种解决方案,就是不在axios的请求拦截里写逻辑,而是在登录成功后,添加

axios.defaults.headers.common.Authorization = `Bear ${data.token}`,但是这样又有个问题就是没法做到数据持久化,如果刷新页面的话,Authorization就会消失掉。所以,一定要在axios的请求拦截器中去写Authorization的逻辑么?


0
1
lu9944
我觉得是带不带都无所谓吧,因为登录接口已经在白名单了,也不会去校验。
2021-06-06
共1条回复

Vue3+ElementPlus+Koa2 全栈开发后台系统

从前端晋级到全栈,让你的未来发展有更多可能

1069 学习 · 580 问题

查看课程