fix: 修复未登录访问购物车页面报错不跳转登录页
- 给需要认证的路由添加 requiresAuth meta - 修改 API 拦截器,401 错误时跳转登录页 - 路由守卫在用户未登录时拦截并跳转登录页 - 避免公开接口和登录/注册接口的 401 错误触发跳转 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -27,18 +27,18 @@ api.interceptors.response.use(
|
||||
const message = error.response?.data?.error || error.message || 'Request failed'
|
||||
if (error.response?.status === 401) {
|
||||
const isLoginRequest = error.config?.url?.includes('/auth/login')
|
||||
if (isLoginRequest) {
|
||||
const isRegisterRequest = error.config?.url?.includes('/auth/register')
|
||||
const isPublicRequest = error.config?.url?.includes('/settings/public') || error.config?.url?.includes('/installed')
|
||||
|
||||
if (isLoginRequest || isRegisterRequest) {
|
||||
ElMessage.error(message)
|
||||
} else {
|
||||
const hadToken = !!localStorage.getItem('token')
|
||||
} else if (!isPublicRequest) {
|
||||
localStorage.removeItem('token')
|
||||
localStorage.removeItem('user')
|
||||
if (hadToken) {
|
||||
ElMessage.error('登录已过期,请重新登录')
|
||||
router.push('/login')
|
||||
} else {
|
||||
ElMessage.error(message)
|
||||
}
|
||||
ElMessage.error('请先登录')
|
||||
router.push('/login')
|
||||
} else {
|
||||
ElMessage.error(message)
|
||||
}
|
||||
} else {
|
||||
ElMessage.error(message)
|
||||
|
||||
Reference in New Issue
Block a user