Задать вопрос
Emptyform
@Emptyform

Как залогинить только что зарегистрированного пользователя?

Привет!

Использую koa, koa-generic-session, koa-passport, passport-local.
Пользователь заходит на форму регистрации, вводит данные, сабмитит. Нода регистрирует пользователя в базе (логин, хэш пароля, соль, ...). Далее перекидывает на форму логина.

Как сделать, чтобы после регистрации пользователя в базе, ему не нужно было идти на форму логина и регистрировать свою сессию, а чтобы пользовательская сессия сразу регистрилась при сохранении пользователя в базу?

update: Можно, конечно, взять koa-request и самому себе послать заполненную форму логина, но, наверняка ж можно без костылей это сделать?
  • Вопрос задан
  • 247 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Emptyform
@Emptyform Автор вопроса
Как обычно, все просто:

const passport = require('koa-passport');
...
yield passport.authenticate('local', {
    successRedirect: '/',
    failureRedirect: '/'
});
...


НО!
Это работает лишь потому, что поля в форме регистрации имеют точно такие же name и id что и в форме логина и на момент вызова authenticate в this.request.body содержатся данные об этих полях переданные из формы регистрации, поэтому аутентификация проходит успешно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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