GoIT, Python WEB, Homework number 12. FastAPI. PostgreSQL. Docker. REST API. ORM SQLAlchemy. Pydantic. Bootstraps CSS. Jinga. Alembic. OAuth2. JWT.
У цьому домашньому завданні ми продовжуємо доопрацьовувати наш REST API додаток із домашнього завдання 11.
- Реалізуйте механізм аутентифікації в додатку;
- Реалізуйте механізм авторизації за допомогою JWT токенів, щоб усі операції з контактами проводилися тільки зареєстрованими користувачами;
- Користувач має доступ тільки до своїх операцій з контактами;
- Під час реєстрації, якщо користувач уже існує з таким email, сервер поверне помилку HTTP 409 Conflict;
- Сервер хешує пароль і не зберігає його у відкритому вигляді в базі даних;
- У разі успішної реєстрації користувача сервер має повернути HTTP статус відповіді 201 Created і дані нового користувача;
- Для всіх операцій POST створення нового ресурсу, сервер повертає статус 201 Created;
- Під час операції POST аутентифікація користувача, сервер приймає запит із даними користувача (email, пароль) у тілі запиту;
- Якщо користувач не існує або пароль не збігається, то повертається помилка HTTP 401 Unauthorized;
- Механізм авторизації за допомогою JWT токенів реалізовано парою токенів: токена доступу access_token і токен оновлення refresh_token;