Архитектура мобильных и веб-приложений: React Native, Django, Postgres и Supabase
Хочу построить побочный проект, так что позвольте мне дать вам немного информации о масштабе, прежде чем погрузиться в предлагаемую архитектуру и то, как я могу заставить их играть хорошо.
Это рынок, где партнеры могут создавать аккаунты и входить в систему только через веб-сайт (они сами решают, почему так происходит).
Покупатели могут войти в систему только через предоставленное мобильное приложение, построенное на React Native.
Мы используем в основном технологию Django, построенную на базе данных postgres. Она будет содержать большую часть функциональности на стороне сервера и размещать API, которое будет использовать мобильное приложение.
Сейчас я рассматриваю несколько BaaS, и две из них выделяются - FireBase и Supabase.
Что я хочу, чтобы BaaS управлял:
- Аутентификация через множество провайдеров (Google, Facebook/Instrgram, iOS, электронная почта и телефон).
- Push-уведомления на разных платформах.
У меня довольно ограниченный бюджет - около 60 долларов в месяц.
Сценарий 1:
Разместите мое приложение Django и базу данных на Digital Ocean - это вполне доступно. Затем выберите supabase, чтобы сделать мою автоматизацию и push-уведомления.
Мне нравится такая установка еще и потому, что мой API и база данных могут находиться в одном и том же центре обработки данных и использовать внутренний IP-адрес, что значительно сокращает время ожидания.
Даже те немногие случаи, когда мне нужно взаимодействовать с Supabase, очень и очень редки. В основном во время регистрации, входа в систему и push-уведомлений.
Как мне заставить Supabase работать с аутентификацией пользователей Django?
Что меня должно волновать в этой настройке с точки зрения удобства использования или безопасности?
Если у кого-нибудь есть отличные статьи, которые могут помочь в этом, было бы здорово.
Сценарий 2:
Я игнорирую BaaS и управляю провайдерами аутентификации и Push-уведомлений в каждом конкретном случае.
Что это означает, так это загрузку каждого пакета react native для аутентификации сторонних производителей и их принудительное преобразование в схемы, дружественные Django.
Это значительно упрощает мою архитектуру, но увеличивает количество вещей, которые мне нужно построить / вещей, которые могут пойти не так.
Если у кого-то есть отличные ресурсы о том, как они использовали react native и Django для аутентификации, буду очень благодарен.
Любой совет будет замечательным.