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

Function exchangeCodeForTokens

src/services/oauth/client.ts:253–283  ·  view source on GitHub ↗
(
  authorizationCode: string,
  state: string,
  codeVerifier: string,
  port: number,
  useManualRedirect: boolean = false,
  expiresIn?: number,
  manualRedirectUri?: string,
)

Source from the content-addressed store, hash-verified

251}
252
253export async function exchangeCodeForTokens(
254 authorizationCode: string,
255 state: string,
256 codeVerifier: string,
257 port: number,
258 useManualRedirect: boolean = false,
259 expiresIn?: number,
260 manualRedirectUri?: string,
261): Promise<OAuthTokenExchangeResponse> {
262 const requestBody: Record<string, string | number> = {
263 grant_type: 'authorization_code',
264 code: authorizationCode,
265 redirect_uri: useManualRedirect
266 ? (manualRedirectUri ?? getOauthManualRedirectUrl())
267 : `http://localhost:${port}/callback`,
268 client_id: getOauthClientId(),
269 code_verifier: codeVerifier,
270 state,
271 }
272
273 if (expiresIn !== undefined) {
274 requestBody.expires_in = expiresIn
275 }
276
277 const data = await getIdentityClient().exchangeCodeForTokens({
278 requestBody,
279 timeout: 15000,
280 })
281 logEvent('ncode_oauth_token_exchange_success', {})
282 return data
283}
284
285export async function refreshOAuthToken(
286 refreshToken: string,

Callers 1

client.test.tsFile · 0.70

Calls 4

getOauthClientIdFunction · 0.85
getIdentityClientFunction · 0.85
logEventFunction · 0.50

Tested by

no test coverage detected