---
title: 以客户身份登录
description: 以特定客户身份打开客户门户一小时以重现问题——包括条件、安全措施、阻止与记录的内容。
url: https://nexcmp.com/zh-cn/docs/customers/login-as/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# 以客户身份登录 {#log-in-as-a-customer}

> **管理后台位置：**Customers › Customers › List › a customer › header button **Impersonate**（`/customers/<id>`）。

## 功能说明 {#what-it-does}

**Impersonate**（模拟登录）允许支持管理员以客户的视角完全查看门户，以重现问题或协助处理订单。该会话持续一小时，与普通会话清晰隔离：所有可能提供对账户长期访问权限的操作均被阻止，且每一次使用都会被记录。

## 前提条件 {#requirements}

| 项目 | 要求 |
|---|---|
| 角色 | 已登录管理控制台的管理员。 |
| 客户 | 账户必须处于**活跃**状态。锁定或删除的账户将返回“账户不活跃”（HTTP 409）。 |
| 原因 | 必须填写原因；该原因将被写入审计日志。 |
| 浏览器 | 请允许管理员地址弹出窗口：门户将在新窗口中打开。 |

## 步骤 {#steps}

1. 打开 **Customers › List** 并点击该客户。
2. 点击 **Impersonate**。对话框会说明将以客户身份打开其站点一小时，且所有操作均会受到审计。
3. 输入**原因**（例如“工单 1234 — 无法创建虚拟机”）并点击 **Open app**。
4. 客户站点将打开一个新窗口，并显示带有 `?impersonated=1` 的控制面板。如果浏览器阻止了窗口，请允许弹出窗口并再次点击。

![已填写原因字段的模拟登录对话框](https://nexcmp.com/zh-cn/docs/images/customers/login-as-01-dialog.webp)

对于转售商的客户，窗口将在**转售商自己的域名**上打开，因为该链接仅在客户自己的站点上有效。

## 工作原理 {#how-it-works}

1. 管理员操作会创建一个有效期为一小时的**单次使用令牌**，并将 `customer.login_as`（管理员、IP、原因、站点）写入审计日志。
2. 新窗口打开 `https://<site>/v1/portal/impersonate/<token>`。初始请求仅显示一个小型页面，**不会**消耗令牌（因此浏览器预取无法将其耗尽）；随后该页面会通过POST进行确认。
3. POST请求会消耗令牌。第二次使用或一小时后使用将返回“模拟链接已过期或已被使用”。
4. NexCMP会创建一个持续**一小时**的客户会话（普通会话持续30天），使用方法 `impersonate` 记录登录条目，并记录 `customer.login_as.used`。
5. 该令牌仅在客户自己的站点上有效；在其他主机上将返回404。

## 模拟会话中被阻止的操作 {#what-is-blocked-in-an-impersonated-session}

任何授予超过一小时访问权限或修改客户自身安全设置的操作都会返回 HTTP 403 `impersonate_forbidden`：

| 已阻止 | 原因 |
|---|---|
| 修改密码、TOTP、绑定或解绑 Google/GitHub、编辑 passkey | 客户自身的凭据 |
| 删除账号 | 不可逆 |
| 创建或编辑 **API keys** | 长期访问权限 |
| 批准 CLI、桌面端或 MCP 登录（设备关联） | 长期访问权限 |
| 创建 Kubernetes 访问权限、S3 钥匙、SSH 钥匙、root 密码、控制台分享链接、VPN 或代理凭据 | 生命周期长于会话的机密信息 |
| 兑换充值码 | 资金活动 |
| 提现或更改分销佣金的派发 | 资金流出系统 |
| 编辑 AI 钥匙、预算或警报电子邮件 | 客户配置 |

其他一切功能均可正常使用：您可以阅读页面、创建或管理虚拟机、下订单等。操作将以客户的身份运行并消耗客户的资金；上述审计条目用于表明该会话是由管理员在背后操作的。

## 验证 {#verify}

1. 模拟一个测试客户。门户将打开并显示该客户的数据。
2. 尝试修改密码：系统提示“禁止”（模拟）。
3. 在 **System › Logs › Admin actions** 中，找到带有您的姓名、原因和站点的 `customer.login_as`，其后跟随 `customer.login_as.used`。
4. 关闭窗口并重新打开同一链接：“链接已过期或已被使用”。

## 限制与注意事项 {#limits-notes}

- 一小时的时限是固定的（3600 秒）。若要继续，请重新进行模拟。
- 建议以阅读和重现问题为主；除非客户明确要求，否则请避免执行会消费资金的操作。
- 可在客户页面上通过 **Revoke sessions** 提前撤销会话（这也会将客户登出）。
- 分销商可从 Resellers 处使用其专属的 **Sign in to partner console** 模拟功能（60 分钟）；详见 [Resellers](https://nexcmp.com/zh-cn/docs/customers/resellers/)。

## 故障排查 {#troubleshooting}

| 症状 | 原因 | 解决办法 |
|---|---|---|
| “账号未激活” | 账号已被锁定或删除 | 请先将其解锁，或者改为查看客户页面。 |
| 浏览器拦截了窗口 | 弹窗拦截器 | 允许管理地址弹出窗口，然后重试。 |
| “链接已过期或已被使用” | 已达到一小时限制或链接已被重复使用 | 请重新开始模拟。 |
| 打开显示“Not found” | 链接在错误的主机上被使用 | 请使用对话框打开的窗口；不要将链接粘贴到其他地方。 |
| 某操作提示“forbidden” | 在模拟会话中被阻止 | 请让客户自行操作，或使用管理界面。 |
