mirror of
https://github.com/sst/opencode.git
synced 2025-12-23 10:11:41 +00:00
fix: send mcpName as state if authUrl doesn't have state (#5681)
This commit is contained in:
parent
f9d0850c5e
commit
57c3cf1f8b
1 changed files with 10 additions and 3 deletions
|
|
@ -494,11 +494,18 @@ export namespace MCP {
|
|||
// Extract state from authorization URL to use as callback key
|
||||
// If no state parameter, use mcpName as fallback
|
||||
const authUrl = new URL(authorizationUrl)
|
||||
const oauthState = authUrl.searchParams.get("state") ?? mcpName
|
||||
let oauthState = mcpName
|
||||
|
||||
if (authUrl.searchParams.has("state")) {
|
||||
oauthState = authUrl.searchParams.get("state")!
|
||||
} else {
|
||||
log.info("no state parameter in authorization URL, using mcpName as state", { mcpName })
|
||||
authUrl.searchParams.set("state", oauthState)
|
||||
}
|
||||
|
||||
// Open browser
|
||||
log.info("opening browser for oauth", { mcpName, url: authorizationUrl, state: oauthState })
|
||||
await open(authorizationUrl)
|
||||
log.info("opening browser for oauth", { mcpName, url: authUrl.toString(), state: oauthState })
|
||||
await open(authUrl.toString())
|
||||
|
||||
// Wait for callback using the OAuth state parameter (or mcpName as fallback)
|
||||
const code = await McpOAuthCallback.waitForCallback(oauthState)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue