在没有接口(例如,从后端、cron 作业等)的 Firestore 中对用户进行身份验证的最佳方法是什么



>场景

  1. 我的服务器上cron.php有一个文件名,该文件名每 5 分钟运行一次以执行任务,例如,发送电子邮件(如果已安排(。如果需要发送电子邮件,cron.php将向 Google Cloud Function 执行 HTTP 请求(见下文(。
  2. 我有一个谷歌云函数设置来接受电子邮件参数并执行电子邮件发送。
  3. 我有一个Firestore数据库,它存储了用户每天可以发送多少电子邮件的配额。

现在,从Google Cloud Functions开始,当它收到发送电子邮件的HTTPS请求时,它需要跟踪和更新用户的配额。为了准确跟踪用户的配额,我需要以该用户的身份登录,cron.php以某种方式将令牌传递回Google Cloud Functions进行验证。但是,有人告诉我,Firebase Admin并不是为了让服务器以用户身份登录。

问题#1:那么,获取令牌或验证用户的好解决方案是什么?如果不推荐使用此方法,我还可以用哪些其他方式表达?因为这是一个 cron 作业,所以没有任何接口或 javascript 来登录用户,但最终,我需要授权并确保是该用户发送了 HTTP 请求以跟踪他们的配额。

问题#2:由于cron.php中的代码是完全私有的,因此假设从那里发送的所有内容都是安全的并且不执行任何检查(只需增加配额(是否是一种好的做法?如果没有,有什么好方法可以解决这个问题?

由于 cron.php 中的代码是完全私有的,因此假设从那里发送的所有内容都是安全的并且不执行任何检查是否是一种好的做法

是的,这是将代码放在后端的主要原因之一 - 您可以完全控制它,并且您知道它不会受到损害(只要您还采取通常的安全预防措施(。

在这种情况下,我认为没有任何理由尝试为最终用户获取令牌。 只需代表用户完成所有工作。

顺便说一下,您可能完全消除PHP代码,而只需运行一个配置为每5分钟调用一次的计划函数。

最新更新