Описание задачи:
1) сделать в одном git репозитории 2 проекта:
- api проект, server side: node.js, ESM стиль модулей, express 4.18;
- web проект, client side: react 17
2) server side роуты:
- GET / - отдает страницу с собранным client side приложением (build директория в web проекте)
- GET /rest/user (требуется авторизация) - отдает детали юзера (имя и email).
- POST /rest/logout (требуется авторизация) - logout с отзывом токена авторизации.
Требования:
1) если на клиенте нет активной сессии юзера:
* при загрузке index.html страницы отображается кнопка "Войти по Яндекс.ID"
* авторизация на стороне server side через Яндекс.ID и редирект на client side страницу
после входа client side получает токен/сессию для запросов к Api server side, делает запрос GET /rest/user (c авторизацией) и получает детали юзера, отображает имя и email юзера на странице
* с загруженной страницы можно нажать на кнопку logout и сделать запрос POST /rest/logout
2) если на клиенте есть активная сессии юзера:
* client side получает токен для запросов к server side, делает запрос GET /rest/user и получает детали юзера, отображает имя и email юзера на странице
* можно сделать запрос POST /rest/logout
3) server side: хранение сессий авторизации в файле
4) сборка и запуск api и web проектов через npm. "npm start" из api директории запускает требуемый веб-сервис
5) не должно быть лишнего кода, не относящегося к поставленной задаче
По оплате:
- указывайте, пожалуйста, сумму, за которую сделаете проект
- готов заплатить 1/3 стоимости проекта, когда будет готова 1/3 часть проекта.