Коа паспорт аутентифицировать - PullRequest
0 голосов
/ 19 сентября 2019

Я делаю простое приложение для регистрации, используя Koa, koa-passport , passport-local и koa-joi-router , которое используется только для проверкитело JSON.Примеры предлагают использовать passport.authenticate следующим образом:

router.route({
  method: 'post',
  path: '/signup',
  validate: {
    type: 'json',
    body: {
      username: Joi.string().required(),
      password: Joi.string().required()
    }
  },
  async handler(ctx, next) {
    const body: {
      username: string,
      password: string,
    } = ctx.request.body;

    try {
      await User.createAndSave(body.username, body.password);
      return passport.authenticate('local', async (error, user, info, status) => {
        if(error) {
          ctx.throw(500);
        } else if(user) {
          await ctx.login(user);
        } else {
          ctx.throw(400);
        }
      })(ctx, next);
    } catch {
      ctx.throw(500);
    }
  }
}

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

1 Ответ

0 голосов
/ 19 сентября 2019

После небольшого поиска я обнаружил, что имена полей имени пользователя и тела пароля установлены в пакете passport-local. Ссылка

...