MCPcopy Index your code
hub / github.com/su-kaka/gcli2api / processCallbackUrl

Function processCallbackUrl

front/common.js:1298–1349  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1296}
1297
1298async function processCallbackUrl() {
1299 const callbackUrl = document.getElementById('callbackUrlInput').value.trim();
1300
1301 if (!callbackUrl) {
1302 showStatus('请输入回调URL', 'error');
1303 return;
1304 }
1305
1306 if (!callbackUrl.startsWith('http://') && !callbackUrl.startsWith('https://')) {
1307 showStatus('请输入有效的URL(以http://或https://开头)', 'error');
1308 return;
1309 }
1310
1311 if (!callbackUrl.includes('code=') || !callbackUrl.includes('state=')) {
1312 showStatus('❌ 这不是有效的回调URL!请确保:\n1. 已完成Google OAuth授权\n2. 复制的是浏览器地址栏的完整URL\n3. URL包含code和state参数', 'error');
1313 return;
1314 }
1315
1316 showStatus('正在从回调URL获取凭证...', 'info');
1317
1318 try {
1319 const projectId = document.getElementById('projectId')?.value.trim() || null;
1320
1321 const response = await fetch('./auth/callback-url', {
1322 method: 'POST',
1323 headers: getAuthHeaders(),
1324 body: JSON.stringify({ callback_url: callbackUrl, project_id: projectId })
1325 });
1326
1327 const result = await response.json();
1328
1329 if (result.credentials) {
1330 showStatus(result.message || '从回调URL获取凭证成功!', 'success');
1331 document.getElementById('credentialsContent').innerHTML = '<pre>' + JSON.stringify(result.credentials, null, 2) + '</pre>';
1332 document.getElementById('credentialsSection').classList.remove('hidden');
1333 } else if (result.requires_manual_project_id) {
1334 showStatus('需要手动指定项目ID,请在高级选项中填入Google Cloud项目ID后重试', 'error');
1335 } else if (result.requires_project_selection) {
1336 let msg = '<br><strong>可用项目:</strong><br>';
1337 result.available_projects.forEach(p => {
1338 msg += `• ${p.name} (ID: ${p.project_id})<br>`;
1339 });
1340 showStatus('检测到多个项目,请在高级选项中指定项目ID:' + msg, 'error');
1341 } else {
1342 showStatus(result.error || '从回调URL获取凭证失败', 'error');
1343 }
1344
1345 document.getElementById('callbackUrlInput').value = '';
1346 } catch (error) {
1347 showStatus(`从回调URL获取凭证失败: ${error.message}`, 'error');
1348 }
1349}
1350
1351async function processAntigravityCallbackUrl() {
1352 const callbackUrl = document.getElementById('antigravityCallbackUrlInput').value.trim();

Callers

nothing calls this directly

Calls 2

showStatusFunction · 0.85
getAuthHeadersFunction · 0.85

Tested by

no test coverage detected