问题描述
我使用 firebase firestore 作为基于 Web 的应用程序的数据存储。该应用程序有 2 个不同的参与者。
主管:通过为所有主管设置的通用密码以及生成唯一代码的能力登录。
我正在使用云函数为两个演员做繁重的工作。现在这些功能都受到 cors 和来源白名单的保护。
我正在尝试使用身份验证中间件保护使用云功能创建的路由,这依赖于请求是否来自经过身份验证的帐户的概念。
我已经为应用程序的前端部分的两个参与者创建了一个电子邮件和密码帐户。
问题是,如果我要使用 firebase Auth api 来获取刷新令牌并将其用作中间件中的 jwt,这会不会是一个问题,因为假设 100 个主管已连接并执行一些任务,以及同样的事情第二个演员?因为在检查刷新令牌后,它包含经过身份验证的帐户的 uid,并且使用同一帐户进行多个连接是这种情况下的阻塞石。
解决方法
在每个操作中使用的令牌的要点是验证请求的来源
Firebase 身份验证使用 ID 令牌来验证用户的身份,而不是请求的来源。您场景中的恶意用户可以从应用中获取凭据,并在他们自己的代码中使用这些凭据 - 在您的 Firebase 项目中调用 API。
如果您只想允许来自您自己的应用的调用,请考虑使用 Firebase 的新 App Check 功能。