Firebase:如何使用php服务器端脚本检查客户端会话


Firebase: how to check client side session with php server side script

我通过Firebase SDK认证客户端用户到我的应用程序。然后启动客户端会话。我希望用户然后能够发布到PHP端点的一些数据。我希望PHP脚本检查请求是否来自经过身份验证的用户,然后验证其余的数据。如果一切正常,我们就完成操作。

我想这样做:

  • 用户被认证客户端
  • 在Auth事件中,对包含用户id的JWT令牌的请求通过ajax在客户端发出到专用的PHP脚本。一旦令牌生成,它就存储在会话cookie中。
  • 表单提交将携带JWT令牌,端点将解码令牌并检查其中存储的uid是否是在Firebase DB中注册的有效用户id。

从安全的角度来看,这是好主意还是坏主意?

第一条经验法则是,为了验证Firebase生成的JWT,您需要Firebase的秘密。第二条经验法则是,你的Firebase秘密永远不应该发送或存储在客户端。

鉴于此,要通过PHP验证JWT,您将需要使用一个库来解码它并验证它已由您的Firebase密钥签名。一旦您验证了这一点,我将查看JWT的uid,并查看它是否与拥有该资源的用户的uid匹配。