fix: start xai oauth callback before browser · openclaw/openclaw@7206811
steipete
·
2026-05-16
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -251,20 +251,23 @@ export async function loginXaiOAuth(ctx: ProviderAuthContext): Promise<ProviderA
|
251 | 251 | nonce, |
252 | 252 | challenge: pkce.challenge, |
253 | 253 | }); |
254 | | -await noteXaiOAuthUrl(ctx, authorizeUrl); |
255 | | -if (!ctx.isRemote) { |
256 | | -await ctx.openUrl(authorizeUrl); |
257 | | -} |
258 | 254 | progress.update(`Waiting for xAI OAuth callback on ${XAI_OAUTH_REDIRECT_URI}...`); |
259 | | -const callback = await waitForLocalOAuthCallback({ |
| 255 | +const callbackPromise = waitForLocalOAuthCallback({ |
260 | 256 | expectedState: state, |
261 | 257 | timeoutMs: XAI_OAUTH_TIMEOUT_MS, |
262 | 258 | port: XAI_OAUTH_CALLBACK_PORT, |
263 | 259 | callbackPath: XAI_OAUTH_CALLBACK_PATH, |
264 | 260 | redirectUri: XAI_OAUTH_REDIRECT_URI, |
265 | 261 | hostname: XAI_OAUTH_CALLBACK_HOST, |
266 | 262 | successTitle: "xAI OAuth complete", |
| 263 | +onProgress: (message) => progress.update(message), |
267 | 264 | }); |
| 265 | +void callbackPromise.catch(() => undefined); |
| 266 | +await noteXaiOAuthUrl(ctx, authorizeUrl); |
| 267 | +if (!ctx.isRemote) { |
| 268 | +await ctx.openUrl(authorizeUrl); |
| 269 | +} |
| 270 | +const callback = await callbackPromise; |
268 | 271 | const tokens = await exchangeXaiOAuthToken({ |
269 | 272 | tokenEndpoint: discovery.tokenEndpoint, |
270 | 273 | context: "xAI OAuth token exchange", |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。