feat: Update HttpClient to handle user logout on 401 error

This commit is contained in:
Timothy Yin 2024-09-19 01:14:30 +08:00
parent 5fc370a3bb
commit 8f0c422dd8

View File

@ -1,3 +1,4 @@
import { useUser } from "@/stores/useUser";
import axios from "axios"; import axios from "axios";
import { uniAdapter } from "fant-axios-adapter"; import { uniAdapter } from "fant-axios-adapter";
@ -36,6 +37,8 @@ export default class ApiClient {
(response) => { (response) => {
if (response.data.code === 10001) { if (response.data.code === 10001) {
const pages = getCurrentPages() as any[]; const pages = getCurrentPages() as any[];
const user = useUser();
user.logout();
setTimeout(() => { setTimeout(() => {
uni.showToast({ title: "登录已过期,请重新登录", icon: "none" }); uni.showToast({ title: "登录已过期,请重新登录", icon: "none" });
}, 300); }, 300);
@ -70,12 +73,13 @@ export default class ApiClient {
return Promise.reject(newError); return Promise.reject(newError);
} }
const pages = getCurrentPages() as any[]; const pages = getCurrentPages() as any[];
const user = useUser();
switch (error.status) { switch (error.status) {
case 1: case 1:
error.msg = "网络超时"; error.msg = "网络超时";
break; break;
case 401: case 401:
// todo 401 logout user.logout();
error.msg = "请先登录"; error.msg = "请先登录";
setTimeout(() => { setTimeout(() => {
uni.showToast({ title: "登录已过期,请重新登录", icon: "none" }); uni.showToast({ title: "登录已过期,请重新登录", icon: "none" });