module.exports = router => { /** * Facebook auth endpoint, this will redirect the user immediately to Facebook * for authorization. */ router.get('/api/v1/auth/facebook', (req, res, next) => { const { connectors: { services: { Passport: { passport } } }, } = req.context; return passport.authenticate('facebook', { display: 'popup', authType: 'rerequest', scope: ['public_profile'], })(req, res, next); }); /** * Facebook callback endpoint, this will send the user a HTML page designed to * send back the user credentials upon successful login. */ router.get('/api/v1/auth/facebook/callback', (req, res, next) => { const { connectors: { services: { Passport: { passport, HandleAuthPopupCallback } }, }, } = req.context; // Perform the facebook login flow and pass the data back through the opener. passport.authenticate( 'facebook', { session: false }, HandleAuthPopupCallback(req, res, next) )(req, res, next); }); };