MCPcopy Create free account
hub / github.com/Noumena-Network/code / completeRelayFlow

Function completeRelayFlow

src/services/oauth/oauthTestHarness.ts:381–413  ·  view source on GitHub ↗
(authorizeUrl)

Source from the content-addressed store, hash-verified

379 }
380 },
381 async completeRelayFlow(authorizeUrl) {
382 const authorizeResponse = await fetch(authorizeUrl, { redirect: 'manual' })
383 const callbackUrl = requireRedirectLocation(authorizeResponse, authorizeUrl)
384 const parsed = new URL(callbackUrl)
385 const relayId = parsed.searchParams.get('relay_id') ?? ''
386 const code = parsed.searchParams.get('code') ?? ''
387 const state = parsed.searchParams.get('state') ?? ''
388
389 const completeResponse = await fetch(`${baseUrl}/oauth/callback-relay/complete`, {
390 method: 'POST',
391 headers: {
392 'Content-Type': 'application/x-www-form-urlencoded',
393 },
394 body: new URLSearchParams({
395 relay_id: relayId,
396 code,
397 state,
398 }),
399 })
400
401 if (completeResponse.status !== 204) {
402 throw new Error(
403 `relay completion failed: ${completeResponse.status} ${await completeResponse.text()}`,
404 )
405 }
406
407 return {
408 relayId,
409 code,
410 state,
411 callbackUrl,
412 }
413 },
414 async close() {
415 await new Promise<void>((resolve, reject) => {
416 server.close(error => {

Callers

nothing calls this directly

Calls 4

fetchFunction · 0.85
requireRedirectLocationFunction · 0.85
getMethod · 0.45
textMethod · 0.45

Tested by

no test coverage detected