如何实现将新的Firebase自定义身份验证最大过期时间设置为1小时的用例


How to implement a use case with the new Firebase Custom Authentication maximum expiration time set to 1 hour?

自定义认证令牌&它们的过期时间:每个令牌1小时限制之前,我在每个客户注册时为他们的服务器创建一个自定义令牌。令牌将在管理仪表板(前端)上用于更改设置和服务器端设置检索。

之前的工作流:客户购买后→我的服务器→创建有效时间(例如6个月)的客户令牌&发送给客户→客户通过向其服务器添加令牌来验证/激活产品。

  • 客户的服务器:使用令牌激活产品。然后使用令牌从Firebase检索设置到服务器端。
  • 客户管理仪表板:令牌从服务器端传递到管理仪表板(前端)。前端进行身份验证,客户现在可以更改设置。

考虑到新的1小时令牌限制,我的工作流程应该如何?如。•为服务器端(在谷歌云项目管理中为客户服务器提供凭据)和前端提供不同的令牌?•通过在我的服务器上建立一个端点来在令牌过期时刷新令牌?

使用PHP由于

在新的Firebase中,自定义令牌意味着只能从客户端使用。我相信您可以使用例工作的一种方法是处理客户机内部的所有DB连接逻辑。这样做的步骤如下所示:

  1. 当你的客户注册你的服务时,为他们分配一些特殊的凭据(例如用户名/pwd对)
  2. 形成客户的管理仪表板,如果客户使用该凭据登录到您的后端,为他们创建一个自定义令牌,并将其发送回管理仪表板。
  3. 从那里调用signInWithCustomToken(customToken)。
  4. 现在执行所有必要的读写数据库,让您的客户管理他们的设置。

如果您需要客户服务器直接访问数据库,那么在Google Cloud项目管理中为客户服务器提供凭据将是一个有效的选择,但是服务帐户将赋予他们对整个数据库以及应用程序的其他部分的特权访问权,因此只有在您完全信任您提供这些凭据的服务器时才这样做。

如果我理解正确的话,最好为每个客户服务器使用一个带过期时间戳字段的令牌。如果您不打算在每个请求上检查令牌是否过期,请进行周期性处理,这将在令牌过期后禁用自定义服务器,并将它们从启用的令牌收集中删除。它允许您只检查令牌是否在收集中,或者在令牌过期时禁用客户服务器。