Firebase C ++ SDK и Google Auth - PullRequest
       13

Firebase C ++ SDK и Google Auth

0 голосов
/ 14 мая 2018

Как можно использовать Аутентификацию Firebase, чтобы позволить пользователям проходить аутентификацию с помощью учетной записи Google через C ++ SDK (используя его в Cocos2d-x).

Меня смущает вопрос о том, нужно ли мне создавать специальный графический интерфейс Google для проверки подлинности, или если SDK требует / содержит стандартный графический интерфейс (или, в случае Cocos2d-x, сцена), который следует использовать.

В любом случае, я не уверен, как это сделать. Кто-нибудь знает, как поступить? Пример кода SDK показывает, как пройти аутентификацию по электронной почте / паролю, но не через учетную запись Google.

1 Ответ

0 голосов
/ 14 мая 2018

Хорошо, это сложно, но не из-за Firebase.

Как правило, если вы хотите использовать федеративный вход в систему, например Facebook , Google , Twitter , вам потребуется использовать встроенный SDK пользовательского интерфейса. для какой платформы вы используете. После успешного входа в систему с помощью одной из этих служб вы создадите учетные данные с token, возвращаемым одной из этих служб.

После того, как вы войдете в систему с этими учетными данными, служба аутентификации Firebase свяжет любые данные учетной записи с этим федеративным входом. Если вы ранее использовали анонимный логин, то аккаунт необходимо обновить. Если вы уже вошли в систему с другими учетными данными (адрес электронной почты, номер телефона, альтернативный федеративный вход в систему), вам потребуется выполнить некоторую логику, чтобы проверить необходимость слияния или переключения.

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


Вот пример. Мы хотим использовать Facebook Login в качестве нашего поставщика федеративного входа. Мы связываем Facebook Login SDK для нашей платформы, как описано в Документах для разработчиков Facebook .

Когда мы хотим запросить учетные данные для входа в Facebook, мы используем FBSDKLoginManager .loginwithReadPermissions () для запуска потока входа. Обычно это включает в себя запуск приложения Facebook для подтверждения разрешений для вашего приложения или веб-сайта (убедитесь, что вы используете правильные ссылки, как описано в документации Facebook).

В конце концов, вход в систему будет успешным или неудачным.

Если это удастся, Facebook выдаст вам токен, который вы можете получить с [FBSDKAccessToken currentAccessToken].tokenString. Это то, что вы отправите на firebase::auth::FacebookAuthProvider::GetCredential


Все это ASync и выполняется в отдельных потоках. Вы должны использовать параллельную очередь для направления этих событий в ваш основной поток.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...