2016-06-18 6 views
1

Я новичок в паспорт и sails.js. Я создал пользовательский логин, следуя этому article. Он работает нормально, и я могу выполнять вход и выход.Получить текущий логин пользователя sails.js + passport.js

Однако я пытаюсь получить доступ к текущему пользователю входа в Controller, но я не могу получить данные пользователя.

Я читал некоторые темы здесь и он сказал что-то любит это

test : function(req,res){ 
    console.log(req.user); 
} 

Я стараюсь это с моими TestController.js

module.exports = { 
    test : function(req,res){ 
     console.log(req.user); 
     res.send("test"); 
     res.status(200).end(); 
    } 
}; 

я получил undefined.

+0

Можете ли вы оставить свой текущий код контроллера? –

+0

@AkhileshSingh Конечно, подождите секунду, пожалуйста. – Natsathorn

+0

его получить 'undefined', потому что вы не проходите сессию пользователя в своем тестовом контроллере –

ответ

0

Я фиксируя эту проблему Благодаря @godfather

Перед тем, как получить доступ к объекту пользователя из запроса вы должны deserialize его первый.

passport.deserializeUser(function (id, done) { 
    User.findOne({ 
     id: id 
    }, function (err, user) { 
     delete user.password 
     done(err, user); 
    }); 
}); 

Эта deserializeUser функция будет прикрепить объект пользователя к объекту запроса. Таким образом, это позволит вам получить доступ к текущему пользователю входа из другого Controller.

Дополнительная информация здесь: Understanding passport serialize deserialize

Смежные вопросы