首页 文章

如何通过Rest Api使用Firebase Auth Admin SDK?

提问于
浏览
4

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

由于我们的产品是多租户软件即服务应用程序,因此我们有自定义身份验证要求 . 因此,我们遵循Firebase的自定义身份验证实现路径,现在它正在运行 .

  • 我们的移动客户端向我们的API服务器发送登录请求,

  • 我们的API服务器发出customTokens并将它们重新回馈给客户端,

  • 客户端调用 signInWithCustomToken(customToken) 方法登录Firebase .

到现在为止还挺好 .

问题是,我们的后端是PHP,Firebase没有官方的PHP SDK . 是的,在Composer上有一个名为kreait/firebase-php的包,但它远远没有涵盖所有的 Auth Admin SDK功能 . 例如,Firebase Admin SDK上有一个documented disable-user feature,但该操作未在kreait / firebase-php包中实现 .

另一方面,Firebase有Auth Rest API,它只适用于API KEY . 但是,(我想)它被设计为在客户端工作,因此它只为经过身份验证的用户提供操作 .

  • 我们的API服务器已托管在Google Compute Cloud上,并拥有Google Cloud 服务的最大访问权限集 .

  • 我们有Firebase服务帐户文件,可与Firebase Auth服务配合使用 .

我们需要的是使用所有可用的Firebase Admin SDK功能(可能通过Rest) . 例如,当用户在他/她的某个设备上更改密码时,我们想要调用 revokeRefreshToken(uid) .

由于在这个具体问题上没有任何文件,您建议我们做什么?

更新(2018年1月25日)

Firebase非官方PHP Admin SDK上面提到的缺失 endpoints 现在由维护者after a productive discussion on a Github issue实现 . 但是,我想保持这个问题的开放,因为问题的本质是要求进一步合作和讨论的想法 .

2 回答

  • 3

    这里说非官方PHP SDK的维护者:) . 您已经更新了原始帖子,以包含SDK现在支持缺少的功能 .

    我发布这个作为一个专门的答案,以便到达这里并寻找答案的人可见 .

    虽然用于PHP的Admin SDK仍然没有完整的功能,但我们正在实现这一目标 . 我将feature matrix添加到Github项目的README中,以便您可以快速查看可用内容和不可用内容 .

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

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

    仅供参考:我刚刚发布了一个新版本(4.1.0),其中包括对Firebase Cloud 存储的支持,实际上确实使用了 google/cloud-storage .

  • 1

    我认为您可以使用Google提供的Identity Toolkit库 . 这是PHP的一个:https://github.com/google/identity-toolkit-php-client

相关问题