22 lines
1.4 KiB
TypeScript
22 lines
1.4 KiB
TypeScript
/** 登录错误文案:把 HTTP 状态码翻成人话。 */
|
|
export function humanLoginError(raw: string): string {
|
|
if (raw.includes('401')) return '用户名或密码不正确'
|
|
if (raw.includes('429')) return '失败次数过多,请稍后再试'
|
|
if (raw.includes('412')) return '本服务未开启登录(嵌入式单租户档)'
|
|
return raw.replace(/^\d{3}:\s*/, '')
|
|
}
|
|
|
|
/** 改密门错误文案:改密的 401 有多种真实原因(会话过期/并发失效/退避),
|
|
* 不能沿用登录的「用户名或密码不正确」一刀切。
|
|
* 后端文案是现行 HTTP 契约的一部分,这里按其区分并用测试锁定。 */
|
|
export function humanChangePasswordError(raw: string): string {
|
|
if (raw.includes('current password incorrect')) return '当前密码不正确'
|
|
if (raw.includes('session login required')) return '请先用账号密码登录再改密(API 密钥不能修改密码)'
|
|
if (raw.includes('session expired')) return '会话已过期,请重新登录'
|
|
if (raw.includes('credentials changed concurrently')) return '登录状态已变化(密码在其他地方被更新),请重新登录'
|
|
if (raw.includes('invalid or revoked API key')) return '本地残留的 API 密钥已失效,请退出登录后重试'
|
|
if (raw.includes('429')) return '失败次数过多,请稍后再试'
|
|
if (raw.includes('401')) return '认证失败,请重新登录'
|
|
return raw.replace(/^\d{3}:\s*/, '')
|
|
}
|