(«Superpoints» и «Megashop», используемые ниже, являются поддельными названиями компаний)
Я использую Firebase Auth для аутентификации пользователей в моем (Android) приложении («Суперпункты»). Мои пользователи могут зарабатывать баллы за использование моего приложения, а затем могут тратить их на оплату чего-либо.
Я хочу интегрироваться с партнером («Мегасоп») следующим образом:
- Алиса открывает приложение Superpoints на своем телефоне Android.
- В приложении она нажимает «Кампании Megashop».
- Откроется веб-браузер или веб-браузер (в зависимости от того, что мне подходит) для superpoints.megashop.com. На открывшейся странице есть кнопка типа «Войти с учетной записью Superpoints».
- Алиса нажимает «Войти в систему с помощью учетной записи Superpoints» и предоставляет свои учетные данные (это может быть электронная почта + пароль, вход с помощью номера телефона, вход с использованием учетной записи Google).
- Система проверяет, существуют ли учетные записи Алисы в моей базе данных пользователей, и отправляет обратно Megashop ответ с идентификатором членства Алисы в Superpoints и ее балансом (например: "{memberId: 100500, points: 42}").
- После того, как Алиса покупает что-то в Megashop, их ловушка проверки отправляет запрос конечной точке HTTPS на облачную функцию, которая добавляет сумму баллов (например, 250 баллов) к балансу Алисы (что-то вроде https://app.superpoints.com/accrual?partner=megashop&memberId=100500&points=250).
На веб-сайте моего приложения я выполняю аутентификацию с использованием FirebaseUI Auth, в приложении я также использую FirebaseUI (библиотека для Android).
Теперь наконец вопросы: Как аутентифицировать моих пользователей на сторонних сайтах? Каковы лучшие практики? Должен ли я создать какой-то шлюз для третьей стороны или есть более простой способ сделать это?