Я все перепробовал.Я просмотрел все ответы, когда-либо отвечавшие на вопросы с малейшим сходством.Я в отчаянии.
Я использую модуль паспорта для своего веб-сайта, и successRedirect не работает, в то время как faultRedirect делает именно то, что должен.это users.js , он выполняет маршрутизацию.
'use strict';
const passport = require('passport');
const User = require('../models/user');
module.exports = function(_, passport){
return {
SetRouting: function(router){
console.log('got it');
router.get('/', this.indexPage);
router.get('/signup', this.getSignUp);
router.get('/home', this.homePage);
router.post('/signup', this.postSignUp);
},
indexPage: function(req, res){
console.log('got index page');
return res.render('index');
},
getSignUp: function(req, res){
console.log('got signup page');
return res.render('signup');
},
homePage: function(req, res){
console.log('got home page');
return res.render('home');
},
postSignUp: passport.authenticate('local.signup', {
successRedirect: '/home',
failureRedirect: '/signup',
failureFlash: true
}),
}
, а это passport-local.js , где я выполняю вызов функции локальной стратегии:
'use strict';
const passport = require('passport');
const User = require('../models/user');
const LocalStrategy = require('passport-local').Strategy;
passport.serializeUser((user, done) => {
done(null, user.id);
});
passport.deserializeUser((id, done) => {
User.findById(id, (err, user) => {
done(err, user);
});
});
passport.use('local.signup', new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true
}, (req, email, password, done) => {
User.findOne({'email': email}, (err, user) => {
if(err){
return done(err);
}
if(user){
return done(null, false, req.flash('error', 'User with email already exist'));
}
const newUser = new User();
newUser.username = req.body.username;
newUser.fullname = req.body.username;
newUser.email = req.body.email;
newUser.password = newUser.encryptPassword(req.body.password);
newUser.save((err) => {
done(null, newUser);
});
});
}));
Я бы так сильно ценил вашу помощь!