Продолжение кейса - основной функционал
Аутентификация
Команда выбрала вход по номеру телефона, поэтому у нас реализовано 4 метода:
requestSms (запросить код), verifySms (проверить код), refreshToken (обновить access token без повторной аутентификации) и me - получение профиля пользователя по токену.
Отправка SMS реализована через обращение к API сервиса SMS Aero - я выбрал их за симпатичный сайт и понятную документацию.
Логика должна быть максимально прозрачна для разработчиков, для остальных скажу, что выгодное отличие XANO от сервисов с "готовыми" модулями аутентификации состоит в том, что в нем можно легко реализовать специфичные вещи - пользовательские роли, тестовые аккаунты с особым доступом и т.п.
Про refreshToken расскажу в отдельной публикации.
Бизнес-логика
В рамках приложения реализована работа с
- профилем и настройками пользователя
- ресторанами и их меню
- рецептами
С учетом вспомогательных всего получилось 8 таблиц в базе данных.
XANO предоставляет стандартные возможности SQL базы данных начиная со структуры и индексов и заканчивая присоединением таблиц и агрегацией в запросах.
Поэтому БД легко будет мигрировать на любой другой сервис при необходимости.
Что касается самой логики, пока реализованы только базовые методы для получения, создания и обновления сущностей.
В завершающем посте расскажу об интеграции с Chat GPT и лайфхаке для создания административных интерфейсов
Post #45
169