"Copy this file to your authentication server" - Firebase 自定义身份验证

"Copy this file to your authentication server" - Firebase Custom auth

我的目标是防止用户多次登录。我不希望这是客户端,像 onDisconnect 和 onConnect 值一样,但有服务器检查。我遇到了这个答案:

How to prevent simultaneous logins of the same user with Firebase?

这告诉我创建自定义身份验证系统。当我关注文档 (https://firebase.google.com/docs/auth/ios/custom-auth) 时,我需要 "Copy this file to your authentication server" (3c)。我该怎么做?我只是在使用 Firebase 和我的小 iOS 应用程序。我想管理这两件事的一切,中间没有服务器,这可能吗?或者这个文件只能通过其他服务器上传吗?

如果以上都不可能,我的服务器如何检查用户是否真的登录了?我正在使用 Cloud Functions,但我没有遇到用户登录的触发器。请不要回答 onDisconnect/onConnect,我想要服务器端。如果用户已经登录,则他可能无法登录。谢谢 :)

实施自定义身份验证需要您有一个安全的地方来创建用于标识每个用户的自定义令牌。您不能仅使用客户端代码安全地执行此操作,因为这意味着每个人都可以声称自己是他们想要的任何人。

虽然您可以 use Cloud Functions for Firebase 在不启动自己的服务器的情况下实现安全的后端,但我强烈建议不要仅仅为了防止用户从多个位置登录而这样做。

在谈论安全性时,将这两个步骤分开很重要:

  1. 身份验证 - 用户证明自己是谁
  2. 授权 - 经过身份验证的用户能够使用您的应用程序

很少有理由阻止用户证明他们是谁。您的担忧似乎在于阻止他们从多个位置使用该应用程序。为此,可能更容易跟踪每个用户从 using Firebase Database's presence system 开始使用该应用程序的位置。

另见:

  • Android - How to detect same user from multiple devices?