[英]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.