Files
linux-odyssey/server/src/auth/githubStrategy.ts
T
2024-02-19 18:05:01 +08:00

30 lines
781 B
TypeScript

import { Strategy as GitHubStrategy } from 'passport-github2'
import type { Profile } from 'passport'
import type { VerifyCallback } from 'passport-oauth2'
import config from '../config.js'
import oauthVerify from './oauthVerify.js'
function verify(
accessToken: string,
refreshToken: string,
profile: Profile,
cb: VerifyCallback
) {
oauthVerify('github', profile, { 'socialLogins.github.id': profile.id }, cb)
}
const enabled = config.github.clientID && config.github.clientSecret
export default enabled
? new GitHubStrategy(
{
clientID: config.github.clientID,
clientSecret: config.github.clientSecret,
callbackURL: `${config.baseUrl}/api/v1/auth/github/callback`,
scope: ['user:email'],
},
verify
)
: null