Как обновить роли в маркере безопасности в Symfony 4 без повторного входа в систему - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь обновить роли пользователя после того, как пользователь подтверждает свой номер телефона.

Я делаю обновление в базе данных:

$user->setRoles(["ROLE_USER"]);
$em->persist($user);

Это прекрасно работает и обновляет роль пользователя в базе данных. (Раньше у пользователей была группа «ROLE_UNACTIVATED»).

Однако он не обновляет роли пользователя в сеансе (токен безопасности), поэтому пользователю необходимо выйти из системы, а затем войти еще раз.

Итак, вопрос в том, как обновить роли пользователя в маркере безопасности?

1 Ответ

0 голосов
/ 23 января 2020

Я не совсем уверен, что это правильный способ сделать это, но я вручную повторно аутентифицировал пользователя

public function activation(Request $request, GuardAuthenticatorHandler $guardHandler, LoginFormAuthenticator $formAuthenticator)
{
    ...
    //re-authenticate user to update roles in security token
    $guardHandler->authenticateUserAndHandleSuccess(
        $user,
        $request,
        $formAuthenticator,
        'main'
    );
}

, и он автоматически обновляет маркер безопасности пользователя без выхода из системы. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...