Сеанс пользователя завершен после обновления имени пользователя или пароля с помощью Диспетчера пользователей и FOSUserBundle - PullRequest
0 голосов
/ 26 ноября 2018

Я занимаюсь разработкой веб-приложения API / REST с лицевой стороной в Angular 7 и бэкэндом в Symfony 4. Оказывается, я пытаюсь обновить имя пользователя или пароль пользователя с помощью FosUserBundle и User Manager.Проблема в том, что после обновления я должен снова войти в систему на передней стороне, потому что сессия была закрыта.Я использую аутентификацию JWT на стороне Angular и думаю, что проблема будет связана с маркером безопасности, созданным с использованием имени пользователя и пароля.Любая подсказка?

открытая функция updateAccess (пользователь $ пользователь, строка $ username, строка $ email, строка $ plainPassword) {

    if($username && is_null($email)){
        $user->setUsername($username);
        $validationGroups = ['Default','username'];
        $errors = $this->validator->validate($user, null, $validationGroups);
        if (count($errors) > 0) {
            throw new UnprocessableEntityHttpException('validation_error');
        }
        $user->setEmail($username);
    }

    if(is_null($username) && $email){
        $user->setEmail($email);
        $validationGroups = ['Default','email'];
        $errors = $this->validator->validate($user, null, $validationGroups);
        if (count($errors) > 0) {
            throw new UnprocessableEntityHttpException('validation_error');
        }
        $user->setUsername($email);
    }

    if($username && $email){
        $user->setEmail($email);
        $validationGroups = ['Default','username','email'];
        $errors = $this->validator->validate($user, null, $validationGroups);
        if (count($errors) > 0) {
            throw new UnprocessableEntityHttpException('validation_error');
        }
        $user->setUsername($username);
    }

    if ($plainPassword){
        $validationGroups = ['Default','edit'];
        $user->setPlainPassword($plainPassword);
        $errors = $this->validator->validate($user, null, $validationGroups);
        if (count($errors) > 0) {
            throw new UnprocessableEntityHttpException('validation_error');
        }
    }
    $this->userManager->updateUser($user);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...