0

我有一个基于PHP的应用程序,它使用MySQL作为数据库。我目前正试图为应用程序中的用户构建一个实时消息系统。我发现Firebase是构建此功能的非常好的解决方案。但是,我不确定我计划的架构是否与正在规划的架构兼容。通过文档挖掘并没有真正让我得到答案。使用PHP进行身份验证并与Firebase中的JS进行交互

我的疑惑是:

  1. 我不想让用户再次登录使用聊天,所以我想 通过服务器认证(即从PHP)。

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

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

我找到了this link这里讲的是定制认证系统。但我不确定,如果这是我必须使用的。如果您计划的解决方案是可扩展的并且可以。

回答

0
  1. Firebase身份验证通过localStorage/indexedDB在客户端持久保留会话,并且是不需要托管服务器的无头API。所以你不需要通过你的服务器来验证用户。
  2. 您可以完全在客户端上使用实时数据库构建消息应用程序,而无需将流量路由到服务器。这里是火力地堡建造聊天应用的一个例子: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 如果您没有现有的身份验证系统,则可以在客户端完全运行身份验证。这是建立在火力地堡的顶部进行认证另一个好图书馆是FirebaseUI:https://github.com/firebase/firebaseui-web