0

SSO Token Exchange

by
Published Apr 8, 2025

During the autorization process, Vercel sends the user to the provider [redirectLoginUrl](https://vercel.

Script vercel Verified

The script

Submitted by hugo697 Bun
Verified 428 days ago
1
//native
2
type Vercel = {
3
  token: string;
4
};
5
/**
6
 * SSO Token Exchange
7
 * During the autorization process, Vercel sends the user to the provider [redirectLoginUrl](https://vercel.
8
 */
9
export async function main(
10
  auth: Vercel,
11
  body: {
12
    code: string;
13
    state?: string;
14
    client_id: string;
15
    client_secret: string;
16
    redirect_uri?: string;
17
  },
18
) {
19
  const url = new URL(`https://api.vercel.com/v1/integrations/sso/token`);
20

21
  const response = await fetch(url, {
22
    method: "POST",
23
    headers: {
24
      "Content-Type": "application/json",
25
      Authorization: "Bearer " + auth.token,
26
    },
27
    body: JSON.stringify(body),
28
  });
29
  if (!response.ok) {
30
    const text = await response.text();
31
    throw new Error(`${response.status} ${text}`);
32
  }
33
  return await response.json();
34
}
35