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

时间:2017-06-07 21:38:49

标签: php mysql firebase firebase-authentication custom-authentication

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

我怀疑是:

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

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

  3. 我可以通过php验证并获取一些密钥或其他内容然后使用它通过Js安全连接吗?

  4. 我发现this link谈到了自定义身份验证系统。但我不确定,如果这是我必须使用的。如果我计划的解决方案是可扩展的,那就好了。

1 个答案:

答案 0 :(得分:0)

  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 如果您没有现有的auth系统,则可以在客户端完全运行身份验证。另一个构建在Firebase之上的身份验证库是FirebaseUI:https://github.com/firebase/firebaseui-web