Правила выполнения домашней работы:
- Выполняйте домашнее задание в отдельной ветке проекта на гитхабе.
- В поле для сдачи работы прикрепите ссылку на ваш проект в Git.
- Присылать на проверку можно каждую задачу по отдельности или все задачи вместе.
- Во время проверки по частям ваша домашняя работа будет со статусом «На доработке».
- Любые вопросы по решению задач задавайте в Slack.
Задание 1
Создать модуль для регистрации (signup) и аутентификации (signin) пользователей (AuthModule). После аутентификации пользователя необходимо генерировать JWT токен и возвращать его на клиент. Payload JWT должен содержать следующую структуру данных:
{
id: "string", // id пользователя
email: "string", // email пользователя
firstName: "string" // firstName пользователя
}
метод | url | действие | комментарий |
---|---|---|---|
POST |
/api/users/signup |
регистрация пользователей | для регистрации пользователей необходимо использовать следующую структуру данных: { email: "string", password: "string", firstName: "string", lastName: "string" } |
POST |
/api/users/signin |
аутентификация пользователей | для аутентификации пользователей необходимо использовать следующую структуру данных: { email: "string", password: "string" } |
Опционально: Зарегистрированные пользователи должны сохраняться в MongoDB.
Задание 2
Создать собственную стратегию JWT с использованием Passport. JWT секрет неоходимо хранить в .env файле.
Задание 3
Создать авторизационный Guard с использованием реализованной стратегии JWT. Подключить авторизационный Guard к контроллерам для авторизации пользовательских запросов.