Задать вопрос
ybiks
@ybiks
Студент

Как попадают значения username и password в Password js?

Я уже сбился со счёта, сколько раз я проклял тот день когда перешел с PHP на Node.js. Суть вопроса заключается в том, что у меня Ajax'ом приходят значения email, password.
app.post('/login', (req, res) => {
		var data = JSON.parse(req.body.remodal);
		console.log(data.email, data.password);	
	})
//passport.js
passport.use(new LocalStrategy(function(username, password, callback){
//Как передаются username и password
}))
А вот как передать их в passport.js понятия не имею. Прошу ответить на вопрос более развёрнуто. Заранее спасибо.
  • Вопрос задан
  • 202 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
По-умолчанию LocalStrategy ищет поля username и password в `req.body`. Но так как у вас данные приходят в другом формате - вам необходимо либо руками доложить в req.body нужные данные, либо подключить body-parser, чтобы он раскодировал входящий json, + нужно указать LocalStrategy от куда забирать данные. Делается это примерно так:

const bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

passport.use(new LocalStrategy({
  usernameField: 'remodal[email]',
  passwordField: 'remodal[password]'
}, function(username, password, callback) {
  console.log(username, password);
}));

app.post('/login', passport.authenticate('local', {
  successRedirect: '/',
  failureRedirect: '/login'
}));


Код не тестировал, но идея надеюсь ясна.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы