Паспорт успешно Редирект не работает !! 1

Все перепробовала. Я просмотрел все ответы, когда-либо отвечавшие на вопросы с малейшим сходством. Я в отчаянии.

Я использую модуль паспорта для своего веб-сайта, и successRedirect не работает, а failRedirect делает именно то, что должен делать. это users.js, он выполняет маршрутизацию.

    'use strict';

     const passport = require('passport');
     const User = require('../models/user');

     module.exports = function(_, passport){
      return {
    SetRouting: function(router){
      console.info('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.info('got index page');
        return res.render('index');
    },

    getSignUp: function(req, res){
        console.info('got signup page');
        return res.render('signup');

    },

    homePage: function(req, res){
        console.info('got home page');
        return res.render('home');
    },

    postSignUp: passport.authenticate('local.signup', {
        successRedirect: '/home',
        failureRedirect: '/signup',
        failureFlash: true
    }),
}

и это паспорт-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);
    });
});
}));

Я так благодарен за вашу помощь!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
613
1

Ответы 1

Ваша стратегия называется 'local.signup'. Имена стратегий не могут содержать точку.

Есть ряд мест, где Passport использует название стратегии в качестве ключа объекта и идентификатора переменной. Например, Аутентификатор паспорта конструирует и позже ссылается на Объект стратегий с именами стратегий в качестве ключей:

Authenticator.prototype.use = function(name, strategy) {
  ...  
  this._strategies[name] = strategy;
  return this;
};

Чтобы это работало, name должен быть действительным идентификатором Javascript, то есть без точек.

Другие вопросы по теме