axios拦截器添加token之后无法登陆的问题

发布于 2022-09-11 21:30:12 字数 1912 浏览 14 评论 0

用户登陆的时候 调用login接口 获取用户信息 同时获取token 之后调用请求都添加token 于是就把token添加到了请求头里 axios里面添加了之后就无法登陆了 求问哪里出了问题

请求拦截器

这段注销的话 可以正常登陆

axios.interceptors.request.use(config => {
  const token = this.$store.state.token;
  if (token) {
    console.log(token);
    config.headers.Authorization = token;
  }
  return config;
}

);

logi方法

login() {
      // this.redirect();
      this.$refs.form.validate(valid => {
        if (valid) {
          this.loading = true;
          this.form.account = this.form.account.trim();
          this.form.account = this.form.account.toLowerCase();

          if (this.remember) {
            this.setCookie("user", this.form.account, 7);
            this.setCookie("password", secret.Encrypt(this.form.password), 7);
            this.delCookie("pwd");
          }
          this.isLogin = true;
          // this.redirect();
          this.$axios.post('/login',this.form).then((res) => {
            console.log(res);
            if (res.success) {
              this.$store.commit('setUserInfo', res.result.userInfo);
              this.$store.commit('setToken',res.result.token);
              console.log(111111,this.$store.state.userInfo);
              console.log(2222,this.$store.state.token);
              this.isLogin = true;
              this.redirect();
            } 
            // else {
            //   this.loading = false;
            //   if (res.code === 500) {
            //     this.$alert(res.message);
            //   } else {
            //     this.$alert('登录失败,请稍后重试');
            //   }
            //   this.form.verificationCode = '';
            //   this.form.passWord = '';
            //   this.refresh();
            // }
          }).catch(()=>{
            this.loading = false;
            this.$alert('系统繁忙,请稍后重试');
          });
        }
      });
    },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白鸥掠海 2022-09-18 21:30:12

这个问题我遇到过。登录接口不需要token,你再传个token过去,接口就会调用失败。所以这是接口的设计问题。前端要改,就要避雷,除了判断有token还要判断接口不是登录接口,才能添加token。

const token = this.$store.state.token;
if (token) {
   console.log(token);
   config.headers.Authorization = token;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文