mirror of
https://github.com/router-for-me/Cli-Proxy-API-Management-Center.git
synced 2026-06-16 21:03:58 +08:00
fix: improve error messages for login and add backend response details
This commit is contained in:
@@ -85,14 +85,15 @@
|
||||
"submit_button": "Login",
|
||||
"submitting": "Connecting...",
|
||||
"error_title": "Login Failed",
|
||||
"error_backend_detail": "Backend response",
|
||||
"error_required": "Please fill in complete connection information",
|
||||
"error_invalid": "Connection failed, please check address and key",
|
||||
"error_invalid": "Connection failed, please check the server address, Management API, and management key",
|
||||
"error_network": "Network connection failed, please check your network or server address",
|
||||
"error_timeout": "Connection timed out, server not responding",
|
||||
"error_unauthorized": "Authentication failed, invalid management key",
|
||||
"error_forbidden": "Access denied, insufficient permissions",
|
||||
"error_not_found": "Server address invalid or management API not enabled",
|
||||
"error_server": "Internal server error, please try again later",
|
||||
"error_unauthorized": "Authentication failed, management key is missing or invalid",
|
||||
"error_forbidden": "Access denied, remote management is disabled, the management key is not configured, or this IP is temporarily banned",
|
||||
"error_not_found": "Management API not found, confirm the server address points to the CLIProxyAPI backend",
|
||||
"error_server": "Backend failed while handling the management request, check the server logs",
|
||||
"error_cors": "Cross-origin request blocked, please check server configuration",
|
||||
"error_ssl": "SSL/TLS certificate verification failed"
|
||||
},
|
||||
|
||||
@@ -85,14 +85,15 @@
|
||||
"submit_button": "Войти",
|
||||
"submitting": "Подключение...",
|
||||
"error_title": "Ошибка входа",
|
||||
"error_backend_detail": "Ответ сервера",
|
||||
"error_required": "Пожалуйста, заполните все данные подключения",
|
||||
"error_invalid": "Подключение не удалось, проверьте адрес и ключ",
|
||||
"error_invalid": "Подключение не удалось, проверьте адрес сервера, Management API и ключ управления",
|
||||
"error_network": "Сетевая ошибка, проверьте подключение или адрес сервера",
|
||||
"error_timeout": "Время ожидания истекло, сервер не отвечает",
|
||||
"error_unauthorized": "Аутентификация не удалась, неверный ключ управления",
|
||||
"error_forbidden": "Доступ запрещён, недостаточно прав",
|
||||
"error_not_found": "Неверный адрес сервера или интерфейс управления не включён",
|
||||
"error_server": "Внутренняя ошибка сервера, попробуйте позже",
|
||||
"error_unauthorized": "Аутентификация не удалась, ключ управления отсутствует или неверен",
|
||||
"error_forbidden": "Доступ запрещён: удалённое управление отключено, ключ управления не настроен или IP временно заблокирован",
|
||||
"error_not_found": "Management API не найден, проверьте, что адрес указывает на backend CLIProxyAPI",
|
||||
"error_server": "Backend не смог обработать запрос управления, проверьте журналы сервера",
|
||||
"error_cors": "Блокировка CORS, проверьте конфигурацию сервера",
|
||||
"error_ssl": "Ошибка проверки SSL/TLS сертификата"
|
||||
},
|
||||
|
||||
@@ -85,14 +85,15 @@
|
||||
"submit_button": "登录",
|
||||
"submitting": "连接中...",
|
||||
"error_title": "登录失败",
|
||||
"error_backend_detail": "后端返回",
|
||||
"error_required": "请填写完整的连接信息",
|
||||
"error_invalid": "连接失败,请检查地址和密钥",
|
||||
"error_invalid": "连接失败,请检查服务地址、管理接口和管理密钥",
|
||||
"error_network": "网络连接失败,请检查网络或服务器地址",
|
||||
"error_timeout": "连接超时,服务器无响应",
|
||||
"error_unauthorized": "认证失败,管理密钥无效",
|
||||
"error_forbidden": "访问被拒绝,权限不足",
|
||||
"error_not_found": "服务器地址无效或管理接口未启用",
|
||||
"error_server": "服务器内部错误,请稍后重试",
|
||||
"error_unauthorized": "认证失败,管理密钥缺失或无效",
|
||||
"error_forbidden": "访问被拒绝,远程管理未启用、管理密钥未配置或 IP 被临时封禁",
|
||||
"error_not_found": "未找到 Management API,请确认服务地址指向 CLIProxyAPI 后端",
|
||||
"error_server": "后端处理管理接口时发生错误,请查看服务日志",
|
||||
"error_cors": "跨域请求被阻止,请检查服务器配置",
|
||||
"error_ssl": "SSL/TLS 证书验证失败"
|
||||
},
|
||||
|
||||
@@ -85,14 +85,15 @@
|
||||
"submit_button": "登入",
|
||||
"submitting": "連線中...",
|
||||
"error_title": "登入失敗",
|
||||
"error_backend_detail": "後端返回",
|
||||
"error_required": "請填寫完整的連線資訊",
|
||||
"error_invalid": "連線失敗,請檢查位址和金鑰",
|
||||
"error_invalid": "連線失敗,請檢查服務位址、管理介面和管理金鑰",
|
||||
"error_network": "網路連線失敗,請檢查網路或伺服器位址",
|
||||
"error_timeout": "連線逾時,伺服器無回應",
|
||||
"error_unauthorized": "驗證失敗,管理金鑰無效",
|
||||
"error_forbidden": "存取被拒絕,權限不足",
|
||||
"error_not_found": "伺服器位址無效或管理介面未啟用",
|
||||
"error_server": "伺服器內部錯誤,請稍後再試",
|
||||
"error_unauthorized": "驗證失敗,管理金鑰缺失或無效",
|
||||
"error_forbidden": "存取被拒絕,遠端管理未啟用、管理金鑰未設定或 IP 被暫時封鎖",
|
||||
"error_not_found": "找不到 Management API,請確認服務位址指向 CLIProxyAPI 後端",
|
||||
"error_server": "後端處理管理介面時發生錯誤,請查看服務日誌",
|
||||
"error_cors": "跨域請求被阻擋,請檢查伺服器設定",
|
||||
"error_ssl": "SSL/TLS 憑證驗證失敗"
|
||||
},
|
||||
|
||||
+20
-5
@@ -32,18 +32,33 @@ function getLocalizedErrorMessage(error: unknown, t: (key: string) => string): s
|
||||
? error
|
||||
: '';
|
||||
|
||||
const withHttpStatus = (summary: string) => {
|
||||
if (!status) {
|
||||
return summary;
|
||||
}
|
||||
|
||||
const genericAxiosMessage = `Request failed with status code ${status}`;
|
||||
const detail = message.trim();
|
||||
const backendDetail =
|
||||
detail && detail !== genericAxiosMessage
|
||||
? ` (${t('login.error_backend_detail')}: ${detail})`
|
||||
: '';
|
||||
|
||||
return `HTTP ${status}: ${summary}${backendDetail}`;
|
||||
};
|
||||
|
||||
// 根据 HTTP 状态码判断
|
||||
if (status === 401) {
|
||||
return t('login.error_unauthorized');
|
||||
return withHttpStatus(t('login.error_unauthorized'));
|
||||
}
|
||||
if (status === 403) {
|
||||
return t('login.error_forbidden');
|
||||
return withHttpStatus(t('login.error_forbidden'));
|
||||
}
|
||||
if (status === 404) {
|
||||
return t('login.error_not_found');
|
||||
return withHttpStatus(t('login.error_not_found'));
|
||||
}
|
||||
if (status && status >= 500) {
|
||||
return t('login.error_server');
|
||||
return withHttpStatus(t('login.error_server'));
|
||||
}
|
||||
|
||||
// 根据 axios 错误码判断
|
||||
@@ -63,7 +78,7 @@ function getLocalizedErrorMessage(error: unknown, t: (key: string) => string): s
|
||||
}
|
||||
|
||||
// 默认错误消息
|
||||
return t('login.error_invalid');
|
||||
return withHttpStatus(t('login.error_invalid'));
|
||||
}
|
||||
|
||||
export function LoginPage() {
|
||||
|
||||
Reference in New Issue
Block a user