在静态网站之间共享Firebase身份验证

时间:2019-03-04 09:59:38

标签: javascript firebase firebase-authentication

为了进行用户研究,我有一系列静态HTML网站,需要收集有关与这些网站互动的日志记录信息。

我的设置仅包含静态HTML和Javascript,在完成其中一个HTML文件后,javascript将在浏览器中加载另一个静态站点。 所以我的逻辑是所有客户端。除了需要发送到中央服务器的日志记录信息之外,我正在使用Firebase。

哪个会产生身份验证问题。目前,我在第一个HTML站点中生成了一个用户ID(独立于Firebase)。然后,我将每个重定向传递给它,并使用它来标记发送到Firebase的日志记录数据。为了安全起见,我在每个站点上都使用匿名登录来验证用户身份。

这很丑陋,因为基本上有两个并行运行的用户身份验证系统。 Firebase跟踪我的匿名用户,并且我的代码生成了用户ID,这使我可以按用户汇总日志记录。最好使用Firebase登录。

理想情况下,我想登录Firebase,然后在重定向中保持此身份验证。在我看来,有两种方法可以做到这一点:

  • 使用OAuth登录用户并共享OAuth令牌
  • 使用其他进程登录并共享凭据(邮件和密码)

即使这只会在本地运行,但在站点之间共享登录凭据似乎是非常糟糕的设计。 OAuth令牌看起来好多了。 但是OAuth需要使用联合登录提供程序(Google,Github等)。 确实不需要。理想情况下,我希望我的用户甚至看不到登录。以某种方式识别它们没有兴趣,数据保持匿名。

在静态网站之间共享Firebase身份验证会话的正确方法是什么?

有一个基本相同的问题:Firebase passing Authentication between web pages

答案是Firebase使用localStorage来跟踪身份验证。很好,但是localStorage在每个域级别上都可以工作。如果托管我的用户研究,那将没有问题。但是这些是本地静态HTML文件。在这种设置中,每个文件都被视为自己的域。验证不会在文件之间进行,因为不共享localStorage。

0 个答案:

没有答案