Firebase C++ SDK and Google Auth

Firebase C++ SDK and Google Auth

本文关键字:Google Auth and SDK C++ Firebase      更新时间:2023-10-16

如何使用Firebase身份验证允许用户通过C++SDK使用Google帐户进行身份验证(在Cocos2d-x中使用它(。

我很困惑我是否需要构建一个特殊的谷歌身份验证GUI,或者SDK是否需要/包含应该使用的标准化GUI(或者在Cocos2d-x的情况下,一个场景(。

无论哪种方式,我都不确定该怎么做。 有谁知道如何进行? SDK 示例代码展示了如何通过电子邮件/密码进行身份验证,而不是通过 Google 帐号进行身份验证。

好的,所以这很复杂,但不是因为Firebase。

基本上,如果你想使用联邦登录,如Facebook,谷歌,Twitter,那么你需要使用他们为你使用的任何平台构建的UI SDK。 当您使用其中一个服务成功登录时,您将使用从这些服务之一返回的token构造一个凭据。

使用此凭据登录后,Firebase 身份验证服务会将任何帐户数据与此联合登录相关联。 如果您以前使用匿名登录,则应升级该帐户。 如果您已经使用其他凭据(电子邮件、电话号码、备用联合登录(登录,则需要执行一些逻辑来检查是否需要合并或切换。

Firebase Auth 可以比 Federated Token 活得更久。 例如,如果 Facebook 登录令牌过期或被吊销,您的 Firebase 身份验证后端可能会保持登录状态。 反之亦然,您的Facebook令牌可能不会过期,但您的Firebase Auth可能已被注销。 您将需要管理这些状态。


下面是一个示例。 我们希望使用 Facebook Login 作为我们的联合登录提供程序。 我们链接了我们平台的 Facebook Login SDK,如 Facebook 开发者文档中所述。

当我们想要请求Facebook登录凭据时,我们使用FBSDKLoginManager .loginwithReadPermissions((来启动登录流程。 这通常包括启动 Facebook 应用以确认您的应用或网站的权限(确保按照 Facebook 文档中的说明正确实施深层链接(。

最终,登录将成功或失败。

如果成功,Facebook会给你一个令牌,你可以从[FBSDKAccessToken currentAccessToken].tokenString那里拿走。 这是您要发送给firebase::auth::FacebookAuthProvider::GetCredential


所有这些都是 ASync 并在单独的线程上完成的。 您应该使用并发队列将这些事件汇集到主线程。

可以使用自己的服务器和注册表单,在这种情况下,您将在游戏中构建自己的UI,然后对后端进行安全的服务器调用。 有一个用于获取短信以验证用户的流程,而不是我会为游戏做的事情。