简体   繁体   English

Passport.js,express.js,重定向方法(successRedirect和failureRedirect)

[英]Passport.js, express.js, redirect methods (successRedirect and failureRedirect)

I'm using express.js and passport.js. 我正在使用express.js和passport.js。

This code is for login: 此代码用于登录:

router
  .route('/login')

  .get((req, res) => res.render('pages/login'))

  .post((req, res, next) => {
    passport.authenticate('local', (err, user, info) => {
      if (err) return next(err)
      if (!user) return res.render('pages/login', { errMsg: info.message })
      req.login(user, err => {
        if (err) return next(err)
        return res.redirect('/')
      })
    })(req, res, next)
  })

What I need to understand now is how to use Passport.js redirect methods: http://www.passportjs.org/docs/authenticate/#redirects 我现在需要了解的是如何使用Passport.js重定向方法: http : //www.passportjs.org/docs/authenticate/#redirects

How can I use this code in my own code? 如何在自己的代码中使用此代码?

app.post('/login',
  passport.authenticate('local', { successRedirect: '/',
                                   failureRedirect: '/login' }));

I had a similar question, solved like this 我有一个类似的问题,像这样解决

if (!user) return res.render('pages/login', { errMsg: info.message })  -->

if (!user) {
        req.flash('error', 'Invalid username or password');
        res.redirect('/login');
        return }

req.logIn(user, function(err) {
            // Invalid password
            if (err) {
                req.flash('error', 'Invalid username or password');
                next(err);
                return
            }
            req.flash('success', 'You are logged in');
            res.redirect('/');
            return
        });

I didn't find another way of implementing successRedirect and failureRedirect, as you have to use the passport function .logIn 我没有找到实现successRedirect和failureRedirect的另一种方法,因为您必须使用通行证功能.logIn

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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