首页 > 解决方案 > 如何使用 Firebase 从云功能端查找用户是否已登录?

问题描述

为了提供动态内容交付,我在火力基地托管中使用了重写。每当打开网站时index.html,浏览器都会请求 Firebase 云功能main

"rewrites": [ {
      "source": "/index.html",
      "function":"main"
}]

现在我面临一个基于用户登录状态提供动态内容的问题。我还检查了使用 JS 的客户端身份验证。

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});

我不知道网络开发。在这里我有几个问题,

如何以更灵活的方式查找用户的身份验证状态?cookie 是否用于此目的?我问是因为我不知道传递firebase-token给云功能main

请给我一个想法。谢谢你们。

标签: javascriptfirebasegoogle-cloud-functions

解决方案


简短回答:最终用户没有在后端可见的登录状态。这不是 Firebase 身份验证的工作方式。

身份验证客户端提供凭据以获取用于在调用后端服务时标识自己的令牌。此令牌的生命周期为 1 小时,客户端必须刷新它才能继续使用它。您的后端不知道也不关心客户端是否有身份验证令牌,他们是否使用它,或者他们是否刷新它。 客户端只需要从他们登录的任何设备提供该令牌,以便后端可以验证它。您的后端无法知道客户端是否获得了令牌 - 您只需要接受给定的令牌即可。这意味着您将不得不真正弄清楚如何传递该令牌并使用 Firebase Admin SDK 对其进行验证,或者使用 Firebase Client SDK 使用可调用类型函数来自动发送该令牌.


推荐阅读