简体   繁体   中英

How to configure route for oauth callback in Node.js

This works perfectly fine in the server.js :

app.get('/auth/google/callback',
    passport.authenticate('google', {
        failureRedirect: '/login'
    }),
    (req, res) => {}
);

But the following doesn't when used in 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);
};

I have the following in route.js :

app.route(path + 'auth/google').get(auth.googleLogin);

What happens: The second code directly goes to / path without waiting for Passport Google strategy to completely execute.

If I remove res.redirect('/'); It does not go anywhere and keep loading.

This worked just fine:

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

Added callback method on the passport.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM