Я занимаюсь разработкой веб-приложения 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);
}