采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
有两个疑问,1、如果像老师这样写的话,在登录的时候,也会走此逻辑,那么此时会取不到token的值,要做下判空和默认处理;2、就算做了这些处理,那么在调用login接口的时候,因为token此时还没生成,所以headers还是会带有Authorization: 'Bear’这个信息,这样会不会有什么影响?有什么办法能够在调用login接口的时候,不带有Authorization字段呢?
首先后台已经过滤掉了登录接口,也就是后台是不会检验登录有没有token的所以登录带不带都没有作用。其次,登录如果不想带,可以根据路由地址做个判断,在前端把header过滤掉。
非常感谢!
老师处理登录请求的时候,const { token } = storage.getItem('userInfo'),此处报错TypeError: Cannot destructure property 'token' of 'storage.getItem(...)' as it is undefined.登录的时候,userInfo还未存储localStorage,storage.getItem('userInfo')取得值为undefined,解构赋值报错
我也碰到了这个问题,请问你是怎么解决的?
想到了一种解决方案,就是不在axios的请求拦截里写逻辑,而是在登录成功后,添加
axios.defaults.headers.common.Authorization = `Bear ${data.token}`,但是这样又有个问题就是没法做到数据持久化,如果刷新页面的话,Authorization就会消失掉。所以,一定要在axios的请求拦截器中去写Authorization的逻辑么?
我觉得是带不带都无所谓吧,因为登录接口已经在白名单了,也不会去校验。
登录后可查看更多问答,登录/注册
从前端晋级到全栈,让你的未来发展有更多可能
265 1
1.1k 4
860 5
998 1
1.2k 8