Skip to content

TRUEVORO/Auth_sprint_2

Repository files navigation

Проектная работа 7 спринта

  1. Создайте интеграцию Auth-сервиса и AsyncAPI-сервиса, используя контракт, который вы сделали в прошлом задании.

    При создании интеграции не забудьте учесть изящную деградацию Auth-сервиса. Как вы уже выяснили ранее, Auth сервис один из самых нагруженных, потому что в него ходят большинство сервисов сайта. И если он откажет, сайт отказать не должен. Обязательно учтите этот сценарий в интеграциях с Auth-сервисом.

  2. Добавьте в Auth трасировку и подключите к Jaeger. Для этого вам нужно добавить работу с заголовком x-request-id и отправку трасировок в Jaeger.

  3. Добавьте в сервис механизм ограничения количества запросов к серверу.

  4. Партицируйте таблицу с пользователями. Подумайте, по каким критериям вы бы разделили её. Важно посмотреть на таблицу не только в текущем времени, но и заглядывая в некое будущее, когда в ней будут миллионы записей. Пользователи могут быть из одной страны, но из разных регионов. А еще пользователи могут использовать разные устройства для входа и иметь разные возрастные ограничения.

  5. Упростите регистрацию и аутентификацию пользователей в Auth-сервисе, добавив вход через социальные сервисы. Список сервисов выбирайте исходя из целевой аудитории онлайн-кинотеатра — подумайте, какими социальными сервисами они пользуются. Например, использовать OAuth от Github{target="_blank"} — не самая удачная идея. Ваши пользователи не разработчики и вряд ли имеют аккаунт на Github. А вот добавить VK, Google, Yandex или Mail будет хорошей идеей.

    Вам не нужно делать фронтенд в этой задаче и реализовывать собственный сервер OAuth. Нужно реализовать протокол со стороны потребителя.

    Информация по OAuth у разных поставщиков данных:

    • Yandex{target="_blank"},
    • VK{target="_blank"},
    • Google{target="_blank"},
    • Mail{target="_blank"}.

Дополнительное задание

Реализуйте возможность открепить аккаунт в соцсети от личного кабинета.

Решение залейте в репозиторий текущего спринта и отправьте на ревью.

Ссылки на спринты:

Для запуска сервиса необходимо:

1. Создать .env на основе .env.template

2. Создать auth/client_secret.json для Google auth по ссылке

3. Создать сеть custom_network

make network

4. Запустить auth

make auth_service

About

Спринт 7

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published