【问题标题】:FOSuser Bundle - User can have multiple accounts, how to switch between themFOSuser Bundle - 用户可以有多个帐户,如何在它们之间切换
【发布时间】:2019-01-04 05:20:56
【问题描述】:

使用 Guard Auth、Symfony 3.4、FOSuser Bundle。

我的注册用户,可以为不同的任务创建子帐户。如果我的用户注销并登录到该子帐户(来自 Fuser 捆绑包的路由),所有工作都按预期工作。帐户需要特权,一切正常。

我想为我的登录用户创建一个切换器,用于他的所有子帐户。 (每个 subb 账户都有自己的 owner id 和 acc_type 字段)

如何创建适当的控制器(继承适当的接口等)、表单,并使用内置的 FOSuser 服务重新加载/切换用户到他的其他帐户?

在渲染控制器视图中(填写隐藏字段作为他的密码,添加“提交”btn以启动登录)

【问题讨论】:

  • 我正在寻找创建新控制器或从 FOSuser Bundle 扩展 SecurityController 的方法。
  • 欢迎部分回复

标签: php symfony fosuserbundle multi-user


【解决方案1】:

我相信您可以使用impersonating user feature 完成指定的行为。

你应该先在你的配置文件中启用这样的选项

# config/packages/security.yaml
security:
    # ...

    firewalls:
        main:
            # ...
            switch_user: true

另外请注意,该功能仅适用于具有称为ROLE_ALLOWED_TO_SWITCH 的特殊角色的用户。使用role_hierarchy 将此角色分配给需要它的用户。

【讨论】:

  • 嗨 Lunin,这个不断变化的角色,造成安全问题,我正在创建差异帐户,出于目的,这不是权限问题,而是用户子帐户的行为方式
  • 这就是模拟功能,但是您应该手动指定允许哪些角色执行切换,如果我正确理解您的问题,这是您的最佳解决方案,请仔细阅读文档跨度>
  • 我已经阅读了,在我的情况下,我的网络服务中的所有用户都应该启用这个角色,这就是为什么这个功能没用。
  • 无法理解它有什么问题?如果您有一些安全问题,那么您应该根据您的需要创建自己的解决方案,我知道没有其他方法,当您想出一些东西时告诉我们,我也很好奇:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 2017-05-10
  • 2012-10-19
  • 2012-07-12
  • 2021-12-05
  • 2014-01-05
  • 2018-09-06
相关资源
最近更新 更多