| const { Strategy: GitHubStrategy } = require('passport-github2'); |
| const socialLogin = require('./socialLogin'); |
|
|
| const getProfileDetails = ({ profile }) => ({ |
| email: profile.emails[0].value, |
| id: profile.id, |
| avatarUrl: profile.photos[0].value, |
| username: profile.username, |
| name: profile.displayName, |
| emailVerified: profile.emails[0].verified, |
| }); |
|
|
| const githubLogin = socialLogin('github', getProfileDetails); |
|
|
| module.exports = () => |
| new GitHubStrategy( |
| { |
| clientID: process.env.GITHUB_CLIENT_ID, |
| clientSecret: process.env.GITHUB_CLIENT_SECRET, |
| callbackURL: `${process.env.DOMAIN_SERVER}${process.env.GITHUB_CALLBACK_URL}`, |
| proxy: false, |
| scope: ['user:email'], |
| ...(process.env.GITHUB_ENTERPRISE_BASE_URL && { |
| authorizationURL: `${process.env.GITHUB_ENTERPRISE_BASE_URL}/login/oauth/authorize`, |
| tokenURL: `${process.env.GITHUB_ENTERPRISE_BASE_URL}/login/oauth/access_token`, |
| userProfileURL: `${process.env.GITHUB_ENTERPRISE_BASE_URL}/api/v3/user`, |
| userEmailURL: `${process.env.GITHUB_ENTERPRISE_BASE_URL}/api/v3/user/emails`, |
| ...(process.env.GITHUB_ENTERPRISE_USER_AGENT && { |
| userAgent: process.env.GITHUB_ENTERPRISE_USER_AGENT, |
| }), |
| }), |
| }, |
| githubLogin, |
| ); |
|
|