Новое в Symfony 6.4: Утилиты имперсонации
- Pull Request: Add new twig bridge function to generate impersonation path #50030 Phil E. Taylor
- Pull Request: [Security] Make impersonation_path() argument mandatory and add impersonation_url() #51804 Alexandre Daubois
Имперсонация пользователя (выдача себя за другого пользователя) — это популярная функция безопасности Symfony, позволяющая войти в приложение под именем другого пользователя, не зная его учётных данных. В основном это необходимо для отладки проблем, о которых сообщают ваши клиенты и которые вы не можете воспроизвести с помощью собственного пользователя.
Symfony предоставляет несколько функций Twig для облегчения работы с имперсонацией пользователя: impersonation_exit_path()
и impersonation_exit_url()
. Эти функции генерируют относительные и абсолютные URL, необходимые для выхода или остановки имперсонации и возврата к собственному пользователю.
В Symfony 6.4 мы добавляем новые функции Twig, связанные с имперсонацией. Они называются impersonation_path()
и impersonation_url()
и генерируют относительный/абсолютный URL, необходимый для имперсонации пользователя:
{# Например, добавьте это на страницу профиля пользователя в бэкенде #}
<a href="{{ impersonation_path(customer.username) }}">Impersonate {{ customer.name }}</a>
{# Например, добавить это в электронные письма, рассылаемые службой поддержки клиентов #}
<a href="{{ impersonation_url(customer.username) }}">Impersonate {{ customer.name }}</a>
Использование этих функций более перспективно, чем генерация путей/URL вручную, поскольку параметр строки запроса, входящий в них, является "магической строкой", настраиваемой в приложении.