blob: a779af2b67a7b9662e004aea70cda44a71ba2601 [file] [log] [blame]
Akane121765b61a72025-05-17 13:52:25 +08001// src/api/auth.js
2import axios from 'axios';
3
4// 创建并导出 axios 实例
5export const api = axios.create({
DREW7c7c6a02025-06-05 19:58:55 +08006 baseURL: 'http://team2.10813352.xyz:8088',
Akane121765b61a72025-05-17 13:52:25 +08007 timeout: 5000,
8});
9
10// 请求拦截器
11api.interceptors.request.use(config => {
12 const token = localStorage.getItem('token');
13 if (token) {
14 config.headers.Authorization = `Bearer ${token}`;
15 }
16 return config;
17});
18
19export const login = async (username, password) => {
20 const response = await api.post('/user/login', null, {
21 params: { username, password }
22 });
23 if (response.data.code === 200 && response.data.data.token) {
24 localStorage.setItem('token', response.data.data.token);
25 }
26 return response;
27};
28
29export const register = (username, password, code) => {
30 return api.post('/user/regist', null, {
31 params: { username, password, code }
32 });
33};
34
Akane12173a7bb972025-06-01 01:05:27 +080035export const getUserInfo = async () => {
36 try {
37 const response = await api.get('/user/userInfo');
38 if (response.data.code === 200) {
39 return response.data.data;
40 }
41 throw new Error(response.data.message || '获取用户信息失败');
42 } catch (error) {
43 console.error('获取用户信息失败:', error);
44 throw error;
45 }
22301080a93bebb2025-05-27 19:48:11 +080046};
47
Akane12173a7bb972025-06-01 01:05:27 +080048export const isAdmin = async () => {
49 try {
50 const userInfo = await getUserInfo();
51 return userInfo.authority === 'ADMIN';
52 } catch (error) {
53 console.error('检查管理员权限失败:', error);
54 return false;
55 }
56};