@malayamarisha

При настройке Authentication с помощью jwt ошибка 401, как исправить?

Доброго времени суток!
Пытаюсь настроить аутентификацию.
Были попытки сделать по документации/ по видео, но на этапе проверки с помощью постман всегда 401. Ошибок нет, в Mapped {/auth/login, POST}

Подскажите, что делаю не так? Может кто сталкивался?

auth.controller.ts
@Controller('auth')
export class AuthController {

    constructor(private authService: AuthService) {
    }

    @UseGuards(AuthGuard('local'))
    @Post('login')
    async login(@Request() req) {
        return req.authService.login(req.user)
    }
}
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
Grapeoff
@Grapeoff
В чём концепция...?
1. Вы навесили гард на эндпоинт аутентификации, конечно он будет выдавать вам Unauthorized.
2. В смысле req.authService? Вместо req должен быть this так-то.
3. Лучше зарегистрировать гард глобально в main файле, а затем сделать декоратор @Public и помечать ими те эндпоинты, которые не требуют аутентификации.
4. ХВАТИТ ИСПОЛЬЗОВАТЬ PASSPORT!
5. В чём прикол пути /auth/login? Выберите что-то одно.
6. Неплохо бы пометить ваш authService как readonly.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@malayamarisha Автор вопроса
Спасибо за замечания
Рабочий вариант:
@Controller()
export class AuthController {
    constructor(private readonly authService: AuthService) { }
    @UseGuards(LocalAuthGuard)
    @Post('login')
    login(@Request() req): any {
        return this.authService.login(req.user)
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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