UNPKG

npm_login_test

Version:
160 lines (130 loc) 3.81 kB
const GoogleStrategy = require('passport-google-oauth20').Strategy; const LinkedInStrategy = require('passport-linkedin-oauth2').Strategy; const FacebookStrategy = require('passport-facebook').Strategy; const passport = require("passport") const app_Initialize=()=>{ return passport.initialize() } const app_Session=()=>{ return passport.session() } const socialMedia_Config = (social_config) => { var { GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET } = social_config if((!GOOGLE_CLIENT_ID) && (!GOOGLE_CLIENT_SECRET)){ GOOGLE_CLIENT_ID =" ", GOOGLE_CLIENT_SECRET =" " } if((!FACEBOOK_APP_ID) && (!FACEBOOK_APP_SECRET)){ FACEBOOK_APP_ID =" ", FACEBOOK_APP_SECRET =" " } if((!LINKEDIN_CLIENT_ID) && (!LINKEDIN_CLIENT_SECRET)){ LINKEDIN_CLIENT_ID=" ", LINKEDIN_CLIENT_SECRET=" " } passport.use(new GoogleStrategy( { clientID: GOOGLE_CLIENT_ID, clientSecret: GOOGLE_CLIENT_SECRET, callbackURL: "/auth/google/callback", profileFields: ["email"], enableProof: true, }, function(accessToken, refreshToken, profile,done ){ done(null, profile); } ) ); passport.use( new FacebookStrategy( { clientID: FACEBOOK_APP_ID, clientSecret: FACEBOOK_APP_SECRET, callbackURL: "/auth/facebook/callback", }, function (accessToken, refreshToken, profile, done) { done(null, profile); } ) ); passport.use( new LinkedInStrategy( { clientID: LINKEDIN_CLIENT_ID, clientSecret: LINKEDIN_CLIENT_SECRET, callbackURL: "/auth/linkedin/callback", scope: ['r_emailaddress', 'r_liteprofile'] }, async function (accessToken, refreshToken, profile, done) { done(null, profile); } ) ); } passport.serializeUser((user, done) => { done(null, user); }); passport.deserializeUser((user, done) => { done(null, user); }); const googleData = (req, res) => { passport.authenticate('google', { scope: ['profile', 'email'] }) (req, res) } const facebookData = (req, res) => { passport.authenticate("facebook", { scope: "email" }) (req, res) } const linkedinData = (req, res) => { passport.authenticate("linkedin", { scope: ['r_emailaddress', 'r_liteprofile'] }) (req, res) } var LINK ={ Google_url:"", Facebook_url:"", Linkedin_url:"", } const clientURL_config =(URL_config)=>{ const {CLIENT_Google_URL, CLIENT_Facebook_URL, CLIENT_Linkedin_URL} = URL_config LINK.Google_url = CLIENT_Google_URL; LINK.Facebook_url=CLIENT_Facebook_URL; LINK.Linkedin_url=CLIENT_Linkedin_URL; } const googleCallback = (req, res) => { passport.authenticate("google",{ successRedirect: LINK.Google_url , failureRedirect: "/login/failed", })(req, res) } const facebookCallback = (req, res) => { passport.authenticate("facebook", { successRedirect: LINK.Facebook_url, failureRedirect: "/login/failed", })(req, res) } const linkedinCallback = (req, res) => { passport.authenticate("linkedin",{ successRedirect: LINK.Linkedin_url, failureRedirect: "/login/failed", })(req, res) } module.exports.passport = passport module.exports.allExports = { googleCallback, clientURL_config, googleData, socialMedia_Config, app_Session, app_Initialize, linkedinCallback, facebookCallback, linkedinData, facebookData }