[英]A way to get the IP address of a user in Firebase Authentication?
[英]Get user's IP address from firebase auth trigger?
我们如何在使用functions.auth.user().onCreate(...)
时获取用户的 IP 地址? 基本上,我想跟踪用户访问我们网站时的 IP 地址和他们注册应用程序时的 IP 地址以进行分析,除非有人知道更好的方法。 谢谢。
这在任何Cloud Functions后台触发器中都是不可能的。 如果要尝试记录IP地址(由于网络流量可以通过代理和VPN进行记录,可能不太准确或没有帮助),则必须使用从应用程序或网站调用的HTTP类型触发器在用户的计算机或设备上运行。 该请求可能包含名为x-forwarded-for
或fastly-client-ip
的标头,其中包含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.