feat(auth): 实现登录认证和权限控制功能

- 添加用户登录和登出功能
- 实现 Token 过期和无效的错误处理
- 添加路由权限控制,未登录用户重定向到登录页
- 优化登录失败的错误提示
- 修复搜索功能的返回数据问题
This commit is contained in:
ikmkj
2025-08-06 23:42:18 +08:00
parent 2a507659c2
commit 72c916da4d
9 changed files with 89 additions and 34 deletions

View File

@@ -1,5 +1,7 @@
import axios from 'axios'
import { useUserStore } from '../stores/user'
import { ElMessage } from 'element-plus'
import router from '../router'
const instance = axios.create({
baseURL: import.meta.env.VITE_API_BASE_URL,
@@ -29,18 +31,30 @@ instance.interceptors.response.use(
response => {
const res = response.data;
if (res.code !== 200) {
// ElMessage({
// message: res.msg || 'Error',
// type: 'error',
// duration: 5 * 1000
// });
ElMessage({
message: res.msg || 'Error',
type: 'error',
duration: 5 * 1000
});
return Promise.reject(new Error(res.msg || 'Error'));
} else {
return res.data;
}
},
error => {
return Promise.reject(error)
if (error.response && error.response.status === 401) {
const userStore = useUserStore();
userStore.logout();
ElMessage.error('登录已过期,请重新登录');
router.push('/login');
} else {
ElMessage({
message: error.message,
type: 'error',
duration: 5 * 1000
});
}
return Promise.reject(error);
}
)