用户
了解如何配置 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:
import * as Sentry from "@sentry/browser";
要识别用户:
Sentry.setUser({ email: "john.doe@example.com" });
你也可以清除当前设置的用户:
Sentry.setUser(null);