0

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

我的疑问是:

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

  2. 我希望直接从客户端到 Firebase 进行进一步的聊天/消息传递,因为我不想在我的服务器上产生不必要的开销,尤其是当直接连接不仅支持而且高效时。

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

我找到了这个关于自定义身份验证系统的链接。但我不确定,如果这是我必须使用的。如果正在计划的解决方案是可扩展的并且没问题。

4

1 回答 1

1
  1. Firebase Auth 通过 localStorage/indexedDB 将会话持久保存在客户端上,并且是一个不需要托管服务器的无头 API。因此,您不需要通过服务器对用户进行身份验证。
  2. 您绝对可以使用实时数据库完全在客户端上构建消息传递应用程序,而无需将流量路由到您的服务器。以下是使用 Firebase 构建的聊天应用示例:https ://github.com/firebase/friendlychat
  3. 如果您已经有一个现有的身份验证系统,则可以使用自定义身份验证,这要求您在使用系统对用户进行身份验证后创建自定义令牌,然后将该自定义令牌发送给客户端,然后再登录。以下是一些使用 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
于 2017-06-08T06:13:14.723 回答