Files
webpreview/src/api.ts
2025-03-03 09:34:53 +08:00

53 lines
1.2 KiB
TypeScript

import axios from "axios"
import { router } from "./router"
const http = axios.create({
baseURL:
import.meta.env.MODE === "development"
? "http://localhost:8000/api"
: "https://webapi.xuyue.cc/api",
xsrfCookieName: "xsrfCookieName",
xsrfHeaderName: "X-CSRFTOKEN",
withCredentials: true,
})
http.interceptors.response.use(
(res) => {
return res
},
(err) => {
if (err.response) {
switch (err.response.status) {
case 401: // 未授权
localStorage.removeItem("web-isloggedin")
alert("未登录")
router.push("/")
break
case 403: // 禁止访问
alert("禁止访问")
break
default:
console.error("出现错误:", err.response.status, err.response.data)
}
} else {
console.error("Network error:", err.message)
}
return Promise.reject(err)
},
)
export async function login(username: string, password: string) {
const res = await http.post("/account/login", { username, password })
return res.data
}
export async function logout() {
const res = await http.post("/account/logout")
return res.data
}
export async function getMyProfile() {
const res = await http.get("/account/profile")
return res.data
}