Emptyform
@Emptyform

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

Привет!

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

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

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

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


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

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

Войти через центр авторизации
Похожие вопросы