如何从侦听器获取 symfony 2.8.28 上的用户角色

How to get user role on symfony 2.8.28 from a listener

我有一个事件侦听器:

services:
    app.game.listener.gamestatus:
        class: GameBundle\EventListener\Game\GameStatusListener
        arguments:
            - '@servicexy'
        tags:
            - { name: kernel.event_listener, event: kernel.controller, method: onFilterControllerEvent }

哪个服务必须传递 like 参数才能获取用户及其角色?

您可以将提示 Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface 键入服务构造函数,然后从那里

$user = $this->token->getToken()->getUser();
$roles = $user->getRoles(); 

如果您手动注入,则为“@security.token_storage”。