模拟用户并返回管理员用户

:bookmark: 本指南说明了如何在 Discourse 中模拟用户并返回管理员帐户。当您需要排查特定用户遇到的问题或验证其权限时,这非常有用。

:person_raising_hand: 所需用户级别:管理员

管理员可以根据需要选择模拟其他用户。当某个成员遇到异常行为或您需要检查其权限时,这会很有用。模拟其他用户就像您以该用户的身份登录一样。本文档将指导您完成管理员模拟用户以及如何返回管理员帐户的过程。

模拟用户

  1. 导航到侧边栏中的 管理 (Admin) 部分,然后选择 用户 (Users)

  2. 找到并选择您想要模拟的用户的个人资料。

  3. 点击右上角的 管理 (Admin)

  4. 在底部,选择 模拟 (Impersonate) 按钮
    image

    模拟用户后,您将不再以管理员身份登录。您将像该用户一样体验 Discourse 界面。

终止模拟会话

方法 1,适用于不经常使用:

要停止模拟并返回您的管理员帐户,只需从被模拟的用户帐户中登出,然后以管理员身份重新登录即可。

:information_source: 在私人/隐身窗口中登录和模拟可以避免在您的主浏览器会话中需要重新登录。只需关闭隐身窗口即可!

方法 2,推荐给经常模拟用户的用户

根据 2025 年 8 月的隐藏实验性站点设置 (experimental_impersonation),启用后,页面顶部会出现一个横幅,其中包含一个可点击的链接,用于终止模拟会话并返回您从中模拟用户的管理员帐户。

此设置现已重命名impersonate_without_logout2026 年 2 月)。

启用 impersonate_without_logout 时:

  • 模拟会话不再需要从管理员帐户登出
  • 在模拟用户时,界面顶部会出现一个持久性横幅,其中包含一个立即结束会话的直接链接 example banner
  • 这使得重复的模拟工作流程更安全、更高效,特别是对于支持和质量保证 (QA) 而言。

此外,站点设置 experimental_impersonation_time_limit_minutes 可用于定义模拟会话的最长持续时间。一旦达到此时间限制,会话将自动终止,从而增加额外的安全层。

对于自托管的 Discourse 站点:

SiteSetting.impersonate_without_logout = true
SiteSetting.experimental_impersonation_time_limit_minutes = 30

对于托管的 Discourse 客户:请联系支持部门以启用或配置这些设置。

40 个赞

值得注意的是,冒充用户并不透明——它会为该用户创建一个已记录的访问,并重置任何已处理的通知标志。最好告知任何真实用户正在进行此操作。

4 个赞

我也遇到了这个问题。我们至少可以在“模拟”按钮上添加一个确认对话框吗?目前它会立即开始模拟,而不会警告用户潜在的风险,特别是它会创建一个已记录的访问。

它附近的“删除用户”等其他按钮确实有确认对话框。作为用户,我希望“模拟”按钮也能像其他按钮一样打开一个对话框。

image

6 个赞

我甚至都没注意到缺少一个确认对话框,但是的,那将是一个很好的地方来警告你即将成为该用户并留下痕迹——而不仅仅是在后台随意查看而没有影响。

5 个赞

我认为您现在可以在 /admin/config/upcoming-changes 启用此设置。

2 个赞