我使用配置了 sonata_user
的 SonataAdminBundle在 config.yml
:
sonata_user:
impersonating:
route: _profile_logged
# more config
我在
/admin
下有我的管理面板字首。我已经配置了 UserAdmin
(基于 User
实体)和 impersonating
field 。我试图通过单击管理面板中的链接来模拟用户,我看到了应用程序(不是管理面板)登录页面。我检查了开发人员工具栏,我注意到模拟用户的请求被重定向到登录页面。这很奇怪,因为此请求与前一个请求的参数几乎相同(对于管理面板中的用户列表)。特别
Request Cookies
节是相同的。我注意到
Request Headers
中的一个不同之处:第一个请求(对于管理面板中的用户列表)发送 cache-control max-age=0
但是第二个(用于冒充)没有。显然,我以完全权限(特别是
ROLE_ALLOWED_TO_SWITCH
)登录到用户的管理面板。那么,如何直接从管理面板进行模拟呢?我的应用程序可能有什么问题?
最佳答案
您可以尝试使用 config.yml
:
sonata_user:
...
impersonating:
route: sonata_admin_dashboard
而在
security.yml
:security:
...
firewalls:
...
admin:
...
switch_user: true
这些对我有用。
关于模拟过程中 session 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17987945/