【问题标题】:Setting new security token on logout in Symfony2在 Symfony2 中注销时设置新的安全令牌
【发布时间】:2014-11-16 15:13:20
【问题描述】:

我正在使用带有 FOSUserBundle 的 Symfony 2.4。

管理员用户可以将他的安全令牌切换为任何其他用户的安全令牌,因此他可以登录系统中的任何帐户。我用以下代码做到了:

$newToken = new MyOwnToken($adminId, $user, null, 'main', $user->getRoles());
$this->get('security.context')->setToken($newToken);

MyOwnToken 扩展了常规的 UsernamePasswordToken,包含额外的 adminId 字段(用于参考原始管理员帐户)。

当管理员注销普通用户帐户时,安全令牌未设置,他被重定向到登录页面。我想稍微改变一下:我希望管理员重新登录他的管理帐户,而不是注销。

我的问题是:如果满足某些条件(例如当前令牌是 MyOwnToken 的实例),我需要什么来防止注销,并将令牌切换到另一个?

【问题讨论】:

    标签: security symfony authentication


    【解决方案1】:

    您应该一起使用不同的方法。它被称为“模拟”用户,并在此处的文档中进行了描述 - http://symfony.com/doc/current/cookbook/security/impersonating_user.html

    【讨论】:

    • 完美!你让我开心:) 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-07-05
    • 2014-03-26
    • 1970-01-01
    • 2011-05-06
    • 2020-10-19
    • 2016-10-23
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多