Скопируйте этот файл на свой сервер аутентификации — Firebase Custom auth

Моя цель - предотвратить пользователей с множественным входом в систему. Я не хочу, чтобы это было на стороне клиента, с такими же значениями onDisconnect и onConnect, но с проверкой сервера. Я наткнулся на этот ответ:

Как предотвратить одновременный вход в систему одного и того же пользователя с Firebase?

Что говорит мне создать пользовательскую систему аутентификации. Когда я следую документам (https://firebase.google.com/docs/auth/ios/custom-auth) Мне нужно «Скопировать этот файл на ваш сервер аутентификации» (3c). Как бы я это сделал? Я просто использую Firebase и свое маленькое приложение для iOS. Я хотел бы управлять всеми этими двумя вещами, без промежуточного сервера, возможно ли это? Или этот файл можно загрузить только через другой сервер?

Если все вышеперечисленное невозможно, как сервер может проверить, действительно ли пользователь вошел в систему? Я использую облачные функции, но я не сталкивался с триггером для входа пользователя. Пожалуйста, не отвечайте на onDisconnect/onConnect, я хочу, чтобы это было на стороне сервера. Пользователь НЕ может войти в систему, если он уже вошел в систему. Спасибо :)


person J. Doe    schedule 21.04.2017    source источник


Ответы (1)


Для реализации пользовательской аутентификации необходимо, чтобы у вас было безопасное место для создания пользовательского токена, который идентифицирует каждого из ваших пользователей. Вы не можете сделать это безопасно, используя только код на стороне клиента, потому что это означало бы, что каждый мог бы претендовать на то, чтобы быть тем, кем он хочет.

Хотя вы можете использовать облачные функции для Firebase для реализации безопасного back-end без запуска собственного сервера, я настоятельно не рекомендую делать это только для того, чтобы запретить пользователю входить в систему из нескольких мест.

Говоря о безопасности, важно разделить эти два шага:

  1. Аутентификация - пользователь доказывает, что он тот, кто он есть
  2. Авторизация — аутентифицированный пользователь может использовать ваше приложение

Очень редко бывает причина, по которой пользователь не может подтвердить, кто он такой. Похоже, вы беспокоитесь о том, чтобы не дать им использовать приложение из разных мест. Для этого, вероятно, будет проще отслеживать для каждого пользователя, где они используют приложение, из уже используя систему присутствия базы данных Firebase.

Также см:

person Frank van Puffelen    schedule 21.04.2017
comment
Ладно, в конце концов, ты фаербейсер! Я просто боюсь всех их эксплойтов, удаления этой строки кода (onConnect и onDisconnect), повторного запуска взломанной версии, вызывающей множественные входы в систему ... но, возможно, я слишком много думаю :) - person J. Doe; 22.04.2017