我有一个建立在vuejs上的SPA。当用户通过API登录时,令牌存储在本地存储中。我需要一个全局解决方案,当令牌不再有效时,它将注销并提示用户。目前,我在访问私有API端点时收到“无效令牌”错误。
如何调整axios,使所有无效令牌的响应都将触发注销/提示代码?
mbzjlibv1#
下面是一个axios的简单示例,它使用一个Bearer令牌进行身份验证。
axios
import axios from "axios"; import { useUserStore } from "@/store/userStore"; const apiClient = axios.create({ baseURL: ""http://127.0.0.1:8001", headers: {}, }); apiClient.interceptors.response.use( (response) => response, async (error) => { const config = error?.config; if (error?.response?.status === 401) { const result = await refreshToken(); if (result) { config.headers = { ...config.headers, authorization: `Bearer ${result?.token}`, }; } return axios(config); } ); const refreshToken = async () => { /* do stuff for refresh token */ // if refresh token failed try { useUserStore().actionLogout(); } catch (error) { console.log(error); } finally { loacalStorage.clear(); } };
rsaldnfx2#
您可以编写一个函数,在一段时间后清除本地存储并注销用户
2条答案
按热度按时间mbzjlibv1#
下面是一个
axios
的简单示例,它使用一个Bearer令牌进行身份验证。rsaldnfx2#
您可以编写一个函数,在一段时间后清除本地存储并注销用户