
216
|
第
18
章
})
.then(user => done(null, user))
.catch(err => done(err, null))
})
.catch(err => {
console.log('whoops, there was an error: ', err.message)
if(err) return done(err, null);
})
}))
并在
registerRoutes
方法里增加以下代码:
app.get('/auth/google', (req, res, next) => {
if(req.query.redirect) req.session.authRedirect = req.query.redirect
passport.authenticate('google', { scope: ['profile'] })(req, res, next)
})
app.get('/auth/google/callback', passport.authenticate('google',
{ failureRedirect: options.failureRedirect }),
(req, res) => {
// 只有认证成功之后才会到达这里
const redirect = req.session.authRedirect
if(redirect) delete req.session.authRedirect ...