Подскажите как правильней будет сделать аутентификация мобильного приложения в API с которым оно работает.
Моя задача будет заключаться в написании API для этого приложения. В качестве универсального метода аутентификации присматриваемся к Firebase Authentication . Интересует как будет взаимодействовать этот треугольник.
Допустим пользователь скачивает приложение из AppStore/PlayMarket, как понимаю они выдают какой-то UserID или DeviceID (до конца механизм я не понял). Дальше мне нужно зарегистрировать в базе пользователя, с возможностью привязать к этой учётке социалки и email в будущем.
Вы правильно рассуждаете, это треугольник. Firebase не обязывает вас использовать их базу данных.
Православно делать callback со стороны Firebase на ваш сервер, но в документации я такого не видел.
Нужно с клиента отправлять запросы на ваш сервер.
Всю информацию по пользователю можно посмотреть в объекте FIRUser.
Несколько способов входа: Все просто - объект FIRUser меняться не будет. Связывает способы входа и пользователя Firebase. Вы делегировали аутентификацию.
Работа с вашей БД: используйте ID как связующий параметр, не важно какой способ входа пользователь выбрал.
Спасибо. Отойдём пока что от FireBase. Он в системе будет как плюшка удобная. Основная авторизация планируется через магазин. Видел множество приложений, в которых не требуется регистрация вообще. Тоесть скачал приложение и уже пользуешся. Как понимаю такое возможно если AppStore/PlayMarket, при установке приложения передаёт идентификатор какой-то свой. Токен или айди, или еще что-то, что привязанно к его учётной записи. И при повторной установке под этой же учёткой позволяет восстановить авторизацию пользователя.
Как понимаю такое возможно если AppStore/PlayMarket, при установке приложения передаёт идентификатор какой-то свой. Токен или айди, или еще что-то, что привязанно к его учётной записи. И при повторной установке под этой же учёткой позволяет восстановить авторизацию пользователя.
А расскажите, какие приложения, например, вы имеете в виду? Мне интересно о чем речь. В моём представлении, если нет авторизации, то после переустановки может сохраниться что-то разве что в кеше на устройстве, но если перед удалением его почистить, то ничего вообще сохраниться не может.
Илья, в Android раньше можно было вытянуть UDID устройства. В случае iOS анонимный вход без крошек сделать нельзя. К слову Firebase и использует их для своего анонимного входа на iOS. Результат, конечно, не 100%-ый.
Покопавшись в этой теме, я понял что это реализованно через третью сторону. GameCenter в случае с IOS и GooglePlayGames в случае Android. Которые возвращают PlayerID. Теперь осталось разобраться как их прикрутить и есть ли способ проверить этот ID на стороне сервера.
Ninazu, учтите что потребуется авторизация в Game Center. Мало того что не у многих есть учётка, так еще и могут просто отказаться входить.
Не говоря про то, что странно что бизнес-приложение просит авторизацию в гейм-центре.
Насчет Android не уверен, но авторизацию в GooglePlayGames точно просит.
Иван Воробей, Жизнь боль.... Почему было не сделать это на базе самой системы. Если переживали за то что пользователя можно таким образом идентифицировать. То генерировали бы UUID для каждого приложения отдельно, чтоб не трекался пользователь между приложениями. А в разрезе одного приложения, да пожалуйста.
Ninazu, поэтому так много систем с трекингом по крошкам. Отсюда и вытекает проблема что если пользователь ставит приложение по ссылке, в ссылку не получится зашить параметры.
Иван Воробей, Что вы подразумеваете под крошками? В моем понимание это Breadcrumbs.
История навигации. А если это так. Разве можно отследить установку приложения из AppStore к примеру а не по какой-то ссылке?
К примеру стоит задача дать пользователю ссылку, а когда по ней он установит приложение - дать бонус.
1) Ссылка ведет на наш сервер. Сервер записывает крошки: IP, модель устройства, регион запроса, разрешение экрана и т.д.
2) После сервер направляет на магазин приложений. Пользователь устанавливает приложение.
3) При запуске приложения, передаются крошки. Сервер сравнит и попытается найти совпадения. Если будет найдено - укажет что за пользователь. Бонус можно начислять.
Не все аналитики умеют такое, но все-таки есть варианты.
Похожу систему можно реализовать для вашей задачи, если не хотите пользоваться анонимным входом Firebase, у них все таки опыт по крошкам крутой.