繁体   English   中英

从 firebase 身份验证触发器获取用户的 IP 地址?

[英]Get user's IP address from firebase auth trigger?

我们如何在使用functions.auth.user().onCreate(...)时获取用户的 IP 地址? 基本上,我想跟踪用户访问我们网站时的 IP 地址和他们注册应用程序时的 IP 地址以进行分析,除非有人知道更好的方法。 谢谢。

这在任何Cloud Functions后台触发器中都是不可能的。 如果要尝试记录IP地址(由于网络流量可以通过代理和VPN进行记录,可能不太准确或没有帮助),则必须使用从应用程序或网站调用的HTTP类型触发器在用户的计算机或设备上运行。 该请求可能包含名为x-forwarded-forfastly-client-ip的标头,其中包含IP地址。 但这没有记录,因此无法保证会存在。

另请参阅: 如何在Firebase云功能中获取客户端IP地址?

IP 信息可从 Firebase auth 使用来自 auth.user().beforeSignIn() 和 auth.user().beforeCreate() 的 EventContext object 获得

要使用它,您首先需要升级到Firebase Authentication with Identity Platform 它在 Spark 和 Blaze 计划中均可用,并且可以通过转到项目中的“Firebase 身份验证 -> 设置”来启用。

例如,文档给出了基于 IP 从 auth.user().beforeSignIn() 获取、检查和阻止的用例:

exports.beforeSignIn = functions.auth.user().beforeSignIn((user, 
context) => {
  if (isSuspiciousIpAddress(context.ipAddress)) {
    throw new functions.auth.HttpsError(
      'permission-denied', 'Unauthorized access!');
  }
});

有关 EventContext 中其他可用内容的更多详细信息和示例,请参阅获取用户和上下文信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM