FosUserBundle выдает себя за другого

Я пытаюсь выдать себя за внешнюю ссылку. Например https://example.com/?_switch_user=email. Поэтому при нажатии на кнопку он будет перенаправлять пользователя и немедленно выдавать себя за него. Это прекрасно работает. Проблема в том, что когда я пытаюсь выдать себя за нового пользователя, это приводит к ошибке 500. Как и ожидалось, потому что активно олицетворение. Мой вопрос: возможно ли сначала запустить https://example.com/?_switch_user=_exit в фоновом режиме, а затем перенаправить на нового пользователя извне.

Это мой код до сих пор:

/**
 * @Route("/admin/client/{email}", name = "client-impersonate")
 */
public function impersonate($email)
{
    // first run someting to exit the active impersonation and then redirect below

    return $this->redirect('https://example.com/?_switch_user='.$email);
}

Мое резервное решение состояло бы в том, чтобы создать какой-то слушатель на example.com, чтобы сначала проверить, есть ли активное олицетворение, и сначала «выйти» из него. Но мне было интересно, могу ли я сделать это также с кодом выше. (до перенаправления)

Не уверен, что означает «имперсонация», но если это означает, что вы вошли в систему, то выход из кода перед перенаправлением должен помочь: stackoverflow.com/questions/6464754/…

MilanG 27.03.2019 15:47

Прежде чем я смогу получить доступ к коду Symfony, я думаю, что лучше всего проверить, что делает конечная точка switch_user с _exit, и сделать то же самое в вашем контроллере.

domagoj 27.03.2019 16:37
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
77
0

Другие вопросы по теме