使用 PHP 进行身份验证并在 Firebase 中与 JS 交互

Authenticate with PHP and interact with JS in Firebase

我有一个基于 PHP 的应用程序,它使用 MySQL 作为数据库。我目前正在尝试为应用程序中的用户构建一个实时消息系统。我发现 Firebase 是构建它的一个非常好的解决方案。但是,我不确定我正在规划的架构是否与正在规划的架构兼容。仔细阅读文档并没有真正让我找到答案。

我的疑惑是:

  1. 我不希望用户再次登录使用聊天,所以我想 通过服务器验证(即来自 php)。

  2. 我希望,进一步 chat/messaging 从客户端到 Firebase 直接发生,因为我不想在我的服务器上产生不必要的开销,尤其是当不仅支持直接连接时但也有效率。

  3. 我可以通过 php 进行身份验证并获得一些密钥或其他东西,然后使用它通过 Js 安全连接吗?

我找到了 this link,其中讨论了自定义身份验证系统。但我不确定,如果这是我必须使用的。如果解决方案是可扩展的并且可以的话。

  1. Firebase Auth 通过 localStorage/indexedDB 在客户端持久保存会话,并且是无头的 API,不需要托管服务器。所以您不需要通过您的服务器对用户进行身份验证。
  2. 您绝对可以完全在具有实时数据库的客户端上构建消息传递应用程序,而无需将流量路由到您的服务器。以下是使用 Firebase 构建的聊天应用示例:https://github.com/firebase/friendlychat
  3. 如果您已有现有的身份验证系统,则可以使用自定义身份验证,这需要您在使用系统对用户进行身份验证后生成自定义令牌,然后将该自定义令牌发送到客户端,然后使用 signInWithCustomToken。下面是一些使用 PHP 创建自定义令牌的代码:https://firebase.google.com/docs/auth/admin/create-custom-tokens#create_custom_tokens_using_the_firebase_admin_sdk 如果您没有现有的身份验证系统,则完全可以 运行 在客户端进行身份验证。另一个构建在 Firebase 之上的优秀身份验证库是 FirebaseUI:https://github.com/firebase/firebaseui-web