请求头的携带,有疑惑

来源:11-6 请求头发送token和获取用户信息

小雨点3545254

2023-11-16

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  if (config.headers) {
    config.headers.authorization = (store.state as StateAll).users.token;
  }
  return config;
}, function (error) {
  return Promise.reject(error);
});

老师,如果这样设置携带请求头设置的话,每次发送请求,不管什么请求都会携带token。发送登录请求也会携带token,登录请求的话,不需要携带token,还有,不一定所有请求都需要携带token,这样设置,是不是有点不合理??
老师有没有什么优化的办法,因为实际开发中,发送有的请求不需要携带token,不光是用户登录,还有其他的请求也不需要携带token,希望老师能详细的讲解一下?

写回答

1回答

西门老舅

2023-11-16

这种情况下,可以在发起请求的时候,携带一个请求参数来判定是否需要携带token,举例如下:


instance.interceptors.request.use(function (config) {

  if (config.headers && shouldIncludeToken(config)) {

    config.headers.authorization = (store.state as StateAll).users.token;

  }

  return config;

}, function (error) {

  return Promise.reject(error);

});


function shouldIncludeToken(config) {

  return !config.url.includes('/exclude-token-path');

}


0
2
西门老舅
回复
小雨点3545254
其实所有接口携带token也没有关系的,因为前端并不需要太多处理,后端其实会自行判断token的情况的,所以就算登录的请求头携带token,也不影响前端和后端的
2023-11-17
共2条回复

Vue3 + React18 + TS4入门到实战 系统学习3大热门技术

专为初级前端人员设计,系统性学习三大技术

261 学习 · 182 问题

查看课程