我们一直在开发一个多平台项目,最终将拥有一个Android应用程序,一个iOS应用程序和一个Web应用程序。我们对Google Firebase提供的功能印象深刻,因此试图利用这些机会。
由于我们的产品是多租户软件即服务应用程序,因此我们有自定义身份验证要求。因此,我们遵循Firebase的自定义身份验证实现路径,现在它正在运行。
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。但是,(我想)它被设计为在客户端工作,因此它只为经过身份验证的用户提供操作。
我们需要的是使用所有可用的Firebase Admin SDK功能(可能通过Rest)。例如,当用户在他/她的某个设备上更改密码时,我们会致电revokeRefreshToken(uid)
。
由于在此特定问题上没有任何文件,您建议我们做什么?
Firebase 非官方 PHP Admin SDK上面提到的缺失端点现在由维护者after a productive discussion on a Github issue实现。但是,我想保持这个问题的开放性,因为问题的本质是要求进一步合作和讨论的想法。
答案 0 :(得分:4)
这里说非官方PHP SDK的维护者:)。您已经更新了原始帖子,以包含SDK现在支持缺少的功能。
我发布这个作为专门的答案,以便到达此处并搜索答案的人可以看到。
虽然用于PHP的Admin SDK仍然没有完整功能,但我们正在实现这一目标。我将feature matrix添加到Github项目的README中,以便您可以快速查看可用内容和不可用内容。
展望未来,我将通过实现与官方管理SDK(特别是https://github.com/firebase/firebase-admin-node)类似的方式以及使用Google Cloud Platform Library提供的现有库来实现新功能。
在未来的某个时刻,Google肯定会提供使用Firebase高效使用Firebase的所有必要构建模块,但在此之前,我很高兴每个使用我的库的PHP开发人员都很开心:)。
仅供参考:我刚刚发布了一个新版本(4.1.0),其中包含对Firebase云存储的支持,实际上确实使用了google/cloud-storage
。
答案 1 :(得分:1)
我认为您可以使用Google提供的Identity Toolkit库。这是PHP的一个:https://github.com/google/identity-toolkit-php-client