用户

了解如何配置 SDK 以捕获用户并获取在 Sentry 中构建唯一身份的关键信息。

用户由几个关键信息组成,这些信息在 Sentry 中构建一个唯一身份。每个信息都是可选的,但必须至少提供一个,Sentry SDK 才能捕获用户:

你内部的用户标识符。

用户名。通常用作比内部 ID 更好的标签。

作为用户名的替代或补充。Sentry 识别电子邮件地址,并可以显示如 Gravatars 和解锁消息功能。

用户的 IP 地址。如果用户未经过身份验证,Sentry 使用 IP 地址作为用户的唯一标识符。 服务器端 SDK 会尝试从 HTTP 请求数据中提取 IP 地址(例如 JSON 中的 request.env.REMOTE_ADDR 字段),如果可用的话。这需要你在 RequestData 集成中将 include.ip 选项设置为 true

如果用户的 ip_address 设置为 "{{auto}}",Sentry 将根据应用程序和 Sentry 服务器之间的连接推断 IP 地址。

如果字段被省略,默认值为 null。然而,由于向后兼容性问题,某些平台(特别是 JavaScript)对 "{{auto}}" 有不同的默认值。SDK 和其他客户端不应依赖此行为,而应显式设置 IP 地址或 "{{auto}}"

要选择不存储用户事件数据中的 IP 地址,你可以进入项目设置,点击“安全与隐私”,并启用“防止存储 IP 地址”或使用 Sentry 的 服务器端数据清理来移除 $user.ip_address。添加此类规则最终会覆盖任何其他逻辑。

此外,你可以提供任意键值对,超出保留名称的部分,Sentry SDK 将会把这些信息与用户一起存储。

默认情况下,我们不会应用通过 API 提供给 SDK 的用户识别信息。相反,我们使用应用程序首次使用时生成的安装 ID。该 ID 不包含任何用户的私有或公共数据或其设备的任何公共或共享数据。

首先需要像往常一样导入 SDK:

Copied
import * as Sentry from "@sentry/browser";

要识别用户:

Copied
Sentry.setUser({ email: "john.doe@example.com" });

你也可以清除当前设置的用户:

Copied
Sentry.setUser(null);