Задать вопрос
@AKLZephyr

Как сделать аутентификацию в мобильном приложении через соц. сети?

Есть приложение на ios, android. В приложении есть баллы.
Нужно сделать аутентификацию через фейсбук, гугл и если пользователь вошел, то баллы должны на разных девайсах синхронизироваться.

Схема примерно такая:
1. При логине через фейсбук, гугл - возвращается access token.
2. После успешного логина. Клиент отправляет запрос на бекенд (id device, access token, provider (соц. сеть))
3. Бекенд смотрит есть ли уже такой юзер, если нет, то создает и возвращает uuid (свой)
4. Клиент сохраняет uuid у себя и при следующем входе отправляет на сервер uuid
При логауте uuid на клиенте удаляется
При логине через другую соц сеть заменяется

Правильно ли составлена логика?
Что возвращается клиенту после логина через соц. сеть? Нужно ли хранить на сервере access токен который вернется?
  • Вопрос задан
  • 167 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Robur
@Robur
Знаю больше чем это необходимо
непонятно зачем вам делать свой uuid, если вы можете посмотреть "есть ли такой юзер" без него? отправляйте с клиента всегда access_token, это проще всего. Разве что вам надо хранить сессию на клиенте даже если он сделал logout из соцсети и потерял access_token.

Что возвращается клиенту после логина через соц. сеть?

Самый распространенный вариант - запрашивать имейл пользователя и дальше уже работать с ним.

Нужно ли хранить на сервере access токен который вернется?

нет

Вы можете сделать uuid и
Ответ написан
CellycoMobiles
@CellycoMobiles
indi developer @CellycoMobiles
Давайте упростим задачу.
Итак нужно авторизовать пользователя посредством соц. сетей.
Идеальным вариантом будет использовать провайдера OIDC или SAML для аппроксимирования авторизации пользователей. Это сократит время на разработку.
Такие провайдеры предоставляют максимальное количество используемый соц. сетей (не уверен, что Gmail и GitHub можно считать соц сетями, но то такое ... субъективное мнение), но различаются реализацией.

Все что вам нужно выбрать одного из таких провайдеров на этапе r&d.

Далее субъективно:
Для "не русских" финтех проектов рекомендую - AWS Cognito. Из коробки соответсвует нескольким пунктам PCI DSS при весьма гуманной стоимости за MAU.
Очень не рекомендую гугловые сервисы. Сливают аудиторию и все rtb–шным сеткам и мордокниге. Но если аудитория не важна - берите. Проще подключать.

P.S. Если возникнут дополнительные вопросы. В профиле есть моя телега. Пишите - отвечу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы