首页 > 解决方案 > 如何在 axios 拦截器中设置 http cookie?

问题描述

我想知道如何为 http cookie 设置 axios 拦截器。

我在 vue SPA 中使用 axios,后端在 laravel 上,API 设置 http cookie,但现在我需要将其发回一些请求。

实际上我有身份验证令牌和刷新令牌,身份验证令牌在本地存储中(它是短暂的),接下来是应用程序流程:在每个请求中,我在请求标头中设置身份验证令牌,laravel API 检查身份验证令牌是否有效以及它是否是请求返回数据,但如果身份验证令牌无效,我必须使用 http cookie 中的 refreshtoken 发出新请求,我知道我无法通过 javascript 访问它,我该怎么办?我怎样才能使这项工作?

这里还有一个棘手的部分是我不想在每个请求上设置刷新令牌,只有在需要重新生成身份验证令牌时。

如果我误解了什么,请不要犹豫,让我朝着正确的方向前进。

标签: httpcookiesvue.jsaxios

解决方案


像这样简单的事情应该会让你朝着正确的方向前进:

axios.interceptors.response.use(response => {
  if (response.data.token) {
    window.localStorage.setItem('token', response.data.token)
  }
});

推荐阅读