Symfony 3.4 如何退出 switch_user?
Posted
技术标签:
【中文标题】Symfony 3.4 如何退出 switch_user?【英文标题】:How can you exit a switch_user by Symfony 3.4? 【发布时间】:2019-12-04 15:30:12 【问题描述】:我有一个可以从用户切换的项目。模仿者工作,但我不能离开模仿者。因此,我一直使用要切换的用户登录。
例如:用户 A 登录并切换到用户 B。当他们点击 /?_switch_user=_exit 时,您希望该用户回到用户 A。但用户留在用户 B。
可能是什么问题?
我已将这些信息包含在 security.yml 中:
firewalls:
main:
pattern: ^/
two_factor:
auth_form_path: 2fa_login
check_path: 2fa_login_check
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
check_path: fos_user_security_check
default_target_path: homepage
always_use_default_target_path: false #true
#csrf_token_generator: security.csrf.token_manager
logout:
path: fos_user_security_logout
target: /
anonymous: true
logout_on_user_change: false
switch_user: role: ROLE_ADMIN
更新:用户 A 是 ROLE_ADMIN,B 是 ROLE_CONSUMER
路由:
home_redirect:
path: /_locale
defaults: _controller: AppBundle:Default:index, _locale: 'nl'
requirements:
_locale: nl|en|fr
app:
resource: '@AppBundle/Controller/'
prefix: /_locale
defaults: _locale: 'nl'
type: annotation
requirements:
_locale: nl|en|fr
更新 2: 重定向到退出的错误是什么: error of wrong user
感谢您的帮助!
【问题讨论】:
【参考方案1】:由于您使用 /?_switch_user=_exit
链接到 root,请确保您的防火墙定义涵盖该路径:
main:
pattern: ^/
【讨论】:
感谢您的反应。但这一切都已准备好添加到防火墙中。请参阅我的要求了解更多信息 @PatrickVollenbroek 当您尝试退出链接时,您的调试分析器会说什么? 我已经在上面的消息中给出了回复。可以看到有错误。但我不知道这是怎么发生的。 Url 是 /nl/admin,在防火墙中保持 /.../admin 仅适用于 Admin 你有什么想法吗? @PatrickVollenbroek 似乎是您如何配置 FOSUserBundle 的一个潜在问题。你能分享你的配置吗(fos_user.yaml?)你对“fos_user.user_class”的配置是什么?以上是关于Symfony 3.4 如何退出 switch_user?的主要内容,如果未能解决你的问题,请参考以下文章
如何配置服务类以使用 BazingaGeocoderBundle 和 Symfony 3.4