用户

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

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

您的内部用户标识符。

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

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

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

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

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

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

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

要识别用户:

Copied
\Sentry\configureScope(function (\Sentry\State\Scope $scope): void {
    $scope->setUser(['email' => 'jane.doe@example.com']);
});

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

Copied
\Sentry\configureScope(function (\Sentry\State\Scope $scope): void {
    $scope->removeUser();
});