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: [
{
key: 'base_url',
label: 'API 地址',
label: '站点地址',
type: 'text',
placeholder: providerWebsite || 'https://api.example.com',
helpText: '提供商的 API 基础地址,留空则使用提供商官网',
required: false,
placeholder: providerWebsite
? `${providerWebsite}`
: '请填写站点地址',
required: !providerWebsite,
},
{
key: 'api_key',

View File

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