Использование паруса. js сессия вместо паспорта. js сессия - PullRequest
0 голосов
/ 11 января 2020

Я использовал паспортную аутентификацию на основе имени пользователя и пароля в своих парусах. js проект на основе. Версия паруса. js - 1.2.3. Я застрял в ситуации, когда мой логин работает нормально, но я не могу начать сеанс, потому что this.req не определен внутри метода passport.authenticate. В моем коде ниже я хочу установить sessData в сеансе.

Причина неиспользования сессии паспорта в том, что я хочу использовать ниже паруса. js Настройки конфигурации sesssion для моего приложения.

Файл контроллера: login-manager. js

  fn: async function (inputs,exits) {

   const passport = require('passport');
   passport.authenticate('local',{ session: false },function (err,user,response){
      if(typeof err !=='undefined' && err && response ==='opLoginError'){
          return exits.error();
      }
      if(typeof response !=='undefined' && (response === 'incorrectUser' || response === 'incorrectPassword')){
          return exits.invalid();
      }
      if(user){
       let sessData = {
          userId : user.id,
          operatorType : user.operatorType,
          opName : user.opName,
          opMainId : user.opMainId
         };

        // Here i want to start session and set sessData in session
        return exits.success({
               status : 200,
               next: 'chatoperators'
   });
      }
   })(this.req,exits);
  }

Файл конфигурации: config / session. js

module.exports.session = {

  secret: 'asdfasdfasdfasdfasdfasdfqwertyui',
  name: 'chatapp.sid',              
  cookie: {
    secure: false,
    maxAge: 24 * 60 * 60 * 1000  
  },
  adapter : '@sailshq/connect-redis',
  url : 'redis://:welcome@127.0.0.1:6379/16'
};

Я также пытался получить req, res следующим образом fn: asyn c функция (входы, выходы, {req, res} ), но получая неопределенное значение. Также пытался вызвать passport.authenticate с помощью await, чтобы я мог получить пользовательские данные вне passport.authenticate, где this.req не является неопределенным, но это также не работает. Пожалуйста, предложите решение, чтобы оно заработало.

...