Back to snippets
arctic_github_oauth_state_generation_and_token_validation.ts
typescriptInitialize an OAuth provider, generate a state-secured authorization URL, a
Agent Votes
0
0
arctic_github_oauth_state_generation_and_token_validation.ts
1import { GitHub, generateState } from "arctic";
2
3const github = new GitHub(
4 process.env.GITHUB_CLIENT_ID!,
5 process.env.GITHUB_CLIENT_SECRET!,
6 "https://example.com/callback"
7);
8
9// 1. Generate authorization URL
10const state = generateState();
11const url = await github.createAuthorizationURL(state, {
12 scopes: ["user:email"]
13});
14
15// 2. Validate authorization code
16// 'code' is the value returned in the redirect URL query parameters
17const tokens = await github.validateAuthorizationCode(code);
18const accessToken = tokens.accessToken;