feat(http): enhance request authorization handling for login requests
Frontend CI / Frontend (push) Successful in 1m53s

fix(login-view): improve error message formatting for login errors
This commit is contained in:
2026-05-04 22:21:43 +08:00
parent 1c19bac8bc
commit 82375cff46
2 changed files with 10 additions and 3 deletions
+8 -2
View File
@@ -43,9 +43,15 @@ const client: AxiosInstance = axios.create({
timeout: 30000, timeout: 30000,
}) })
function isLoginRequest(url: string | undefined, method: string | undefined): boolean {
return (
method?.toLowerCase() === 'post' && (url === '/auth/login' || Boolean(url?.endsWith('/auth/login')))
)
}
client.interceptors.request.use((config) => { client.interceptors.request.use((config) => {
const { session } = readStoredSession() const { session } = readStoredSession()
if (session.accessToken) { if (session.accessToken && !isLoginRequest(config.url, config.method)) {
config.headers = config.headers ?? {} config.headers = config.headers ?? {}
config.headers['Authorization'] = `Bearer ${session.accessToken}` config.headers['Authorization'] = `Bearer ${session.accessToken}`
} }
@@ -58,7 +64,7 @@ client.interceptors.response.use(
const status = error.response?.status const status = error.response?.status
const payload = error.response?.data const payload = error.response?.data
if (status === 401) { if (status === 401 && !isLoginRequest(error.config?.url, error.config?.method)) {
clearStoredSession() clearStoredSession()
onUnauthorized?.() onUnauthorized?.()
} }
+2 -1
View File
@@ -146,7 +146,8 @@ function formatLoginError(error: unknown): string {
login_guard_unavailable: '登录保护暂时不可用', login_guard_unavailable: '登录保护暂时不可用',
} }
const message = messages[error.message] ?? error.message const message = messages[error.message] ?? error.message
return error.detail ? `${message}${error.detail}` : message const detail = error.detail?.trim()
return detail && detail !== message ? `${message}${detail}` : message
} }
if (error instanceof Error) { if (error instanceof Error) {
return error.message return error.message