首页 > 解决方案 > 如何在 Node.js 中为 oauth 回调配置路由

问题描述

这在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('/');它不会去任何地方并继续加载。

标签: javascriptnode.jspassport.js

解决方案


这工作得很好:

exports.googleCallback = function(req, res, next) {
  passport.authenticate('google', { failureRedirect: '/login' })(req, res, next);
};

在护照上添加回调方法。


推荐阅读