本指南说明了如何在 Discourse 中模拟用户并返回到您的管理员帐户。当您需要排查特定用户遇到的问题或验证其权限时,这非常有用。
所需用户等级:管理员
管理员可以选择在需要时模拟其他用户。当某个成员遇到异常行为或您需要检查其权限时,这会很有用。模拟其他用户就像您以该用户的身份登录一样。本文档将指导您完成作为管理员模拟用户的过程以及如何返回到管理员帐户。
模拟用户
导航到侧边栏中的 管理 (Admin) 部分,然后选择 用户 (Users)。
找到并选择您想要模拟的用户的个人资料。
点击右上角的 管理 (Admin)。
在底部,选择
模拟(Impersonate) 按钮
模拟用户后,您将不再以管理员身份登录。您将像该用户一样体验 Discourse 界面。
模拟用户不是透明的——它会为该用户创建一次登录访问记录,并重置任何被操作过的通知标志。请考虑告知用户已执行了模拟操作。
终止模拟会话
方法 1,适用于不经常使用:
要停止模拟并返回您的管理员帐户,只需从被模拟的用户帐户注销,然后以管理员身份重新登录即可。
在私密/隐身窗口中登录和模拟可以避免在您的主浏览器会话中重新登录。只需关闭隐身窗口即可!
方法 2,推荐给经常模拟用户的情况
启用
impersonate_without_logout设置后,在模拟用户时,界面顶部将显示一个持久性横幅,其中包含一个可立即结束会话并返回您的管理员帐户的按钮。
这使得重复的模拟工作流程更安全、更高效,尤其适用于支持和质量保证 (QA)。
此外,隐藏的站点设置
experimental_impersonation_time_limit_minutes可用于定义模拟会话的最长持续时间(默认值:15 分钟)。一旦达到此时间限制,会话将自动终止,从而增加了额外的安全层。启用
impersonate_without_logout启用此功能的推荐方法是通过 管理 → 即将进行的更改 (
/admin/config/upcoming-changes),可以在其中为所有员工或特定组切换启用此功能。对于 自托管 站点,也可以通过 Rails 控制台启用:
SiteSetting.impersonate_without_logout = true SiteSetting.experimental_impersonation_time_limit_minutes = 15
40 个赞
值得注意的是,冒充用户并不透明——它会为该用户创建一个已记录的访问,并重置任何已处理的通知标志。最好告知任何真实用户正在进行此操作。
4 个赞
我也遇到了这个问题。我们至少可以在“模拟”按钮上添加一个确认对话框吗?目前它会立即开始模拟,而不会警告用户潜在的风险,特别是它会创建一个已记录的访问。
它附近的“删除用户”等其他按钮确实有确认对话框。作为用户,我希望“模拟”按钮也能像其他按钮一样打开一个对话框。

6 个赞
我甚至都没注意到缺少一个确认对话框,但是的,那将是一个很好的地方来警告你即将成为该用户并留下痕迹——而不仅仅是在后台随意查看而没有影响。
5 个赞
我认为您现在可以在 /admin/config/upcoming-changes 启用此设置。
2 个赞



