本指南介绍如何在 Discourse 中模拟用户并返回管理员账户。这在需要排查特定用户遇到的问题或验证其权限时非常有用。
所需用户等级:管理员
管理员可根据需要选择模拟其他用户。当成员遇到异常行为,或您需要检查其权限时,此功能非常有用。模拟其他用户相当于以该用户身份登录。本文档将指导您以管理员身份模拟用户,并说明如何返回管理员账户。
模拟用户
-
导航至侧边栏的 管理员 部分,选择 用户。
-
查找并选择您要模拟的用户个人资料。
-
点击右上角的 管理员。
-
在底部选择
模拟按钮

一旦您模拟了该用户,您将不再以管理员身份登录。您将体验与用户完全相同的 Discourse 界面。
模拟用户并非透明操作——它会为该用户创建一次登录访问记录,并重置任何已处理的通知标志。建议告知用户已执行了模拟操作。
结束模拟会话
方法一:适用于不频繁使用的情况
要停止模拟并返回您的管理员账户,只需从被模拟的用户账户注销,然后重新以管理员身份登录。
在私密/无痕窗口中登录并进行模拟,可避免需要在主浏览器会话中重新登录。只需关闭无痕窗口即可继续操作!
方法二:如果您经常模拟用户,推荐此方法
启用 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



