()
| 1163 | // Antigravity 认证相关函数 |
| 1164 | // ===================================================================== |
| 1165 | async function startAntigravityAuth() { |
| 1166 | const btn = document.getElementById('getAntigravityAuthBtn'); |
| 1167 | btn.disabled = true; |
| 1168 | btn.textContent = '生成认证链接中...'; |
| 1169 | |
| 1170 | try { |
| 1171 | showStatus('正在生成 Antigravity 认证链接...', 'info'); |
| 1172 | |
| 1173 | const response = await fetch('./auth/start', { |
| 1174 | method: 'POST', |
| 1175 | headers: getAuthHeaders(), |
| 1176 | body: JSON.stringify({ mode: 'antigravity' }) |
| 1177 | }); |
| 1178 | |
| 1179 | const data = await response.json(); |
| 1180 | |
| 1181 | if (response.ok) { |
| 1182 | AppState.antigravityAuthState = data.state; |
| 1183 | AppState.antigravityAuthInProgress = true; |
| 1184 | |
| 1185 | const authUrlLink = document.getElementById('antigravityAuthUrl'); |
| 1186 | authUrlLink.href = data.auth_url; |
| 1187 | authUrlLink.textContent = data.auth_url; |
| 1188 | document.getElementById('antigravityAuthUrlSection').classList.remove('hidden'); |
| 1189 | |
| 1190 | showStatus('✅ Antigravity 认证链接已生成!请点击链接完成授权', 'success'); |
| 1191 | } else { |
| 1192 | showStatus(`❌ 错误: ${data.error || '生成认证链接失败'}`, 'error'); |
| 1193 | } |
| 1194 | } catch (error) { |
| 1195 | showStatus(`网络错误: ${error.message}`, 'error'); |
| 1196 | } finally { |
| 1197 | btn.disabled = false; |
| 1198 | btn.textContent = '获取 Antigravity 认证链接'; |
| 1199 | } |
| 1200 | } |
| 1201 | |
| 1202 | async function getAntigravityCredentials() { |
| 1203 | if (!AppState.antigravityAuthInProgress) { |
nothing calls this directly
no test coverage detected