UNPKG

sessionize-auth

Version:

A flexible session management library for React, Next.js, Angular, and React Native

58 lines (48 loc) 1.35 kB
import { BaseSSOProvider } from "./base"; import { SSOUser } from "../types"; /** * GitHub OAuth 2.0 Provider */ export class GitHubSSOProvider extends BaseSSOProvider { protected getProviderName(): string { return 'GitHub'; } protected getProviderIcon(): string { return 'https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png'; } protected getProviderColor(): string { return '#333333'; } protected getScopes(): string[] { return this.config.scopes || [ 'user:email', 'read:user' ]; } protected getAuthUrl(): string { return 'https://github.com/login/oauth/authorize'; } protected getTokenUrl(): string { return 'https://github.com/login/oauth/access_token'; } protected getUserInfoUrl(): string { return 'https://api.github.com/user'; } protected parseUserInfo(data: any, accessToken: string): SSOUser { return { id: data.id.toString(), email: data.email, name: data.name || data.login, avatar: data.avatar_url, provider: 'github', providerId: data.id.toString(), accessToken: accessToken }; } protected getCustomParams(): Record<string, string> { return { allow_signup: 'true', ...this.config.customParams }; } }