Arctic is an OAuth 2.0 library for JavaScript/TypeScript that supports numerous providers. It's light weight, fully-typed, and runtime-agnostic. Read the documentation →
import { GitHub, generateState } from "arctic";
const github = new GitHub(clientId, clientSecret);
const state = generateState();
const authorizationURL = await github.createAuthorizationURL(state, {
scopes: ["user:email"]
});
const tokens = await github.validateAuthorizationCode(code);
For a flexible OAuth 2.0 client, see oslo/oauth2
.
Arctic only supports providers that strictly follow the OAuth 2.0 spec (including PKCEG).
- Amazon Cognito
- Apple
- Atlassian
- Auth0
- Bitbucket
- Box
- Coinbase
- Discord
- Dropbox
- Figma
- Github
- GitLab
- Kakao
- Keycloak
- Lichess
- Line
- Linear
- Microsoft Entra ID
- Notion
- Okta
- osu!
- Patreon
- Salesforce
- Spotify
- Strava
- Tumblr
- Twitch
- WorkOS
- Yahoo
- Zoom