在server.js
中可以很好地工作:
app.get('/auth/google/callback',
passport.authenticate('google', {
failureRedirect: '/login'
}),
(req, res) => {}
);
但是在route.js
中使用以下代码时不会:
exports.googleCallback = function(req, res, next) {
passport.authenticate('google', { failureRedirect: '/login' });
const handler = function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
};
handler(req, res, next);
};
我在route.js
中具有以下内容:
app.route(path + 'auth/google').get(auth.googleLogin);
会发生什么:
第二个代码直接进入/
路径,而无需等待Passport Google策略完全执行。
如果我移除了res.redirect('/');
,它不会随处可见并继续加载。
答案 0 :(得分:0)
这很好用:
exports.googleCallback = function(req, res, next) {
passport.authenticate('google', { failureRedirect: '/login' })(req, res, next);
};
在护照上添加了回调方法。