Получить текущий URL в security.yml

По моему требованию, пользователь получает электронное письмо с URL-адресом, и после того, как он щелкнет, пользователь перейдет к URL-адресу через процесс аутентификации.

Таким образом, чтобы перенаправить пользователя на URL-адрес, по которому я нажал, я использую метод, упомянутый здесь ( Передача параметров при перенаправлении ), где я намерен передать URL-адрес перенаправления в качестве параметра, как

login_path: %accounts_host%/signin?redirect=%need_current_url_here%

в пределах security.yml и захватить как таковой $url=$_GET['redirect']; и обеспечьте перенаправление соответственно.

Мой вопрос, как я могу получить доступ к текущему URL из security.yml так что я могу прикрепить его к login_path,

Я довольно новичок в этом, и любой пример / документ очень ценится. 🙂

PS

Аутентификация выполняется в другом приложении symonfy2, и в этот момент я не могу использовать referer команда, поскольку это будет нулевым. Вот почему я пытаюсь передать вам URL перенаправления в качестве параметра. 🙂

0

Решение

Я бы предложил использовать точку входа и обработчик успеха.

security.yml:

firewalls:            # Required
# Examples:
somename:
entry_point: some.service.id
...
form_login:
...
success_handler: some.service.id

SuccessHandler (источник):

<?php
namespace StatSidekick\UserBundle\Handler;

use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationSuccessHandler;
use Symfony\Component\Security\Http\HttpUtils;

class AuthenticationSuccessHandler extends DefaultAuthenticationSuccessHandler {

public function __construct( HttpUtils $httpUtils, array $options ) {
parent::__construct( $httpUtils, $options );
}

public function onAuthenticationSuccess( Request $request, TokenInterface $token ) {
// Create if necessary a redirect response otherwise use the parent one with
// $response = parent::onAuthenticationSuccess( $request, $token );

return $response;
}
}

Точка входа (источник):

Когда пользователь вообще не аутентифицирован (т.е. когда хранилище токенов
еще не имеет токена), точка входа брандмауэра будет
«начать» процесс аутентификации. Точка входа должна реализовывать
AuthenticationEntryPointInterface, который имеет только один метод: start () …

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]