提问者:小点点

如何通过Rest Api使用Firebase Auth AdminSDK?


我们一直在开发一个多平台项目,最终将有一个Android应用程序、一个iOS应用程序和一个网络应用程序。我们对谷歌Firebase提供的功能印象深刻,因此试图利用这些机会。

由于我们的产品是一个多租户软件a-service应用程序,我们有自定义身份验证要求。因此,我们遵循Firebase的自定义身份验证实现路径,它现在可以运行了。

  • 我们的移动客户端向我们的API服务器发送登录请求,
  • 我们的API服务器发布自定义令牌并将其返回给客户端,
  • 客户端调用signInWellCustomToken(CustToken)方法登录Firebase。

到目前为止还不错。

问题是,我们的后端PHP,Firebase没有PHP的官方管理SDK。是的,Composer上有一个名为kreait/Firebase-php的包,但是它远远没有涵盖所有身份验证管理SDK功能。例如,Firebase AdminSDK上有一个记录在案的禁用用户功能,但是该操作没有在kreait/Firebase-php包上实现。

另一方面,Firebase有一个Auth RestAPI它只适用于APIKEY。然而,(我想)它被设计为在客户端工作,因此它只对经过身份验证的用户进行操作。

  • 我们的API服务器已经托管在Google Compute Cloud上,并且拥有Google Cloud服务的最大访问权限集。
  • 我们有Firebase服务号文件,可用于Firebase身份验证服务。

我们需要的是使用所有可用的Firebase AdminSDK功能(可能通过Rest)。例如,当用户在他/她的一台设备上更改密码时,我们希望调用撤销刷新令牌(uid)

既然在这个特定的问题上没有任何留档,你建议我们怎么做?

Firebase非官方PHPAdminSDK上的上述缺失endpoint现在由维护者在对Github问题进行了富有成效的讨论后实现。但是,我想保持这个问题的开放性,因为这个问题的本质是询问进一步合作和讨论的想法。


共2个答案

匿名用户

上述非官方PHP的维护者SDK这里:)。你已经更新了你的原始帖子,包括SDK现在支持缺失的功能。

我将此作为一个专门的答案发布,以便到达这里并寻找答案的人也能看到。

虽然PHP的管理SDK功能还没有完成,但我们正在实现。我在Github项目的自述文件中添加了功能矩阵,这样你就可以快速查看哪些可用,哪些不可用。

展望未来,我将通过实现类似于官方Admin SDK(尤其是https://github.com/firebase/firebase-admin-node)的东西以及使用Google Cloud Platform Library提供的现有库来实现新功能。

在未来的某个时候,谷歌肯定会提供所有必要的构建块,以便在PHP中有效地使用Firebase,但在此之前,我很高兴每个快乐的PHP开发人员使用我的库:)。

FYI:我刚刚发布了一个新版本(4.1.0),其中包括对Firebase云存储的支持,并且实际上使用了谷歌/云存储。

匿名用户

我想你可以使用谷歌提供的身份工具包库。这是PHP:https://github.com/google/identity-toolkit-php-client