fix: 新增 API 验证增加响应完整性检查

- 站点地址字段在无官方地址时改为必填
- 验证成功时检查用户信息和余额是否完整返回
This commit is contained in:
fawney19
2026-01-18 11:40:59 +08:00
parent 1e71d355fc
commit 0f7ba38655
2 changed files with 23 additions and 10 deletions

View File

@@ -21,11 +21,12 @@ export const newApiTemplate: AuthTemplate = {
fields: [ fields: [
{ {
key: 'base_url', key: 'base_url',
label: 'API 地址', label: '站点地址',
type: 'text', type: 'text',
placeholder: providerWebsite || 'https://api.example.com', placeholder: providerWebsite
helpText: '提供商的 API 基础地址,留空则使用提供商官网', ? `${providerWebsite}`
required: false, : '请填写站点地址',
required: !providerWebsite,
}, },
{ {
key: 'api_key', key: 'api_key',

View File

@@ -346,12 +346,24 @@ async function handleVerify() {
const result = await verifyProviderAuth(props.providerId, verifyRequest) const result = await verifyProviderAuth(props.providerId, verifyRequest)
if (result.success) { if (result.success) {
verifyStatus.value = 'success' // 检查是否获取到有效的用户信息和余额
formChanged.value = false // 验证成功后重置表单变动标记 const username = result.data?.username?.trim() || result.data?.display_name?.trim()
// Toast 提示 const quota = result.data?.quota
const displayName = result.data?.display_name || result.data?.username || '未知'
const quotaStr = result.data?.quota !== undefined ? ` | 余额: ${formatQuota(result.data.quota)}` : '' if (!username || quota === undefined || quota === null) {
showSuccess(`用户: ${displayName}${quotaStr}`, '验证成功') // 没有获取到必要信息,视为验证失败
verifyStatus.value = 'error'
const missing: string[] = []
if (!username) missing.push('用户信息')
if (quota === undefined || quota === null) missing.push('余额')
showError(`验证响应缺少: ${missing.join('、')}`)
} else {
verifyStatus.value = 'success'
formChanged.value = false // 验证成功后重置表单变动标记
// Toast 提示
const displayName = result.data?.display_name || result.data?.username
showSuccess(`用户: ${displayName} | 余额: ${formatQuota(quota)}`, '验证成功')
}
} else { } else {
verifyStatus.value = 'error' verifyStatus.value = 'error'
showError(result.message || '验证失败') showError(result.message || '验证失败')