@api-craft/oauth
Version:
Express middleware plugin for OAuth login with Google, Apple, and Meta (Facebook & Instagram). Auto exposes OAuth routes and callbacks.
17 lines (15 loc) • 709 B
JavaScript
import { Strategy as GoogleStrategy } from 'passport-google-oauth20';
export default function setupGoogleStrategy(router, passport, baseUrl, config, onSuccess) {
passport.use(new GoogleStrategy({
clientID: config.clientId,
clientSecret: config.clientSecret,
callbackURL: `${baseUrl}/google/callback`
}, (accessToken, refreshToken, profile, done) => {
done(null, profile);
}));
router.get('/google', passport.authenticate('google', { scope: config.scopes || ['email'] }));
router.get('/google/callback',
passport.authenticate('google', { failureRedirect: '/auth/failure' }),
(req, res) => onSuccess ? onSuccess(req, res, req.user) : res.json(req.user)
);
}