http - 如何在 axios 拦截器中设置 http cookie?
问题描述
我想知道如何为 http cookie 设置 axios 拦截器。
我在 vue SPA 中使用 axios,后端在 laravel 上,API 设置 http cookie,但现在我需要将其发回一些请求。
实际上我有身份验证令牌和刷新令牌,身份验证令牌在本地存储中(它是短暂的),接下来是应用程序流程:在每个请求中,我在请求标头中设置身份验证令牌,laravel API 检查身份验证令牌是否有效以及它是否是请求返回数据,但如果身份验证令牌无效,我必须使用 http cookie 中的 refreshtoken 发出新请求,我知道我无法通过 javascript 访问它,我该怎么办?我怎样才能使这项工作?
这里还有一个棘手的部分是我不想在每个请求上设置刷新令牌,只有在需要重新生成身份验证令牌时。
如果我误解了什么,请不要犹豫,让我朝着正确的方向前进。
解决方案
像这样简单的事情应该会让你朝着正确的方向前进:
axios.interceptors.response.use(response => {
if (response.data.token) {
window.localStorage.setItem('token', response.data.token)
}
});