fix(admin): 登录失败时显示后端实际错误信息而非"登录已过期"

401 响应拦截器区分登录页和已登录页面:
- 登录页:显示后端返回的 message(如"账号或密码错误")
- 其他页面:显示"登录已过期"并跳转登录页

Made-with: Cursor
This commit is contained in:
bujinyuan
2026-03-02 14:00:12 +08:00
parent cb08e1d621
commit 8a818f8035

View File

@@ -51,10 +51,15 @@ service.interceptors.response.use(
if (error.response) { if (error.response) {
const { status, data } = error.response const { status, data } = error.response
if (status === 401) { if (status === 401) {
const isOnLoginPage = router.currentRoute.value.path === '/login'
if (isOnLoginPage) {
ElMessage.error(data?.message || '账号或密码错误')
} else {
ElMessage.error('登录已过期,请重新登录') ElMessage.error('登录已过期,请重新登录')
localStorage.removeItem('admin_token') localStorage.removeItem('admin_token')
localStorage.removeItem('admin_user') localStorage.removeItem('admin_user')
router.push('/login') router.push('/login')
}
} else if (status === 403) { } else if (status === 403) {
ElMessage.error(data?.message || '没有访问权限') ElMessage.error(data?.message || '没有访问权限')
} else { } else {