@symnoob

Как осуществить пере адресацию после авторизации на ранее запрашиваемый ресурс?

Нужна одна Фишка,

такая довольно часто встречается, поэтому вопрос как лучше осуществить или как делаете это вы?

Простой пример:

Пользователь заходит на защищённый ресурс, при этом он не авторизован. На данный момент после авторизации он попадает на свою учётную запись.

А надо чтобы он попадал на тот защищённый ресурс который до этого запрашивал.

Есть ли идеи как это лучше сделать?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 2
Maksclub
@Maksclub
maksfedorov.ru
По дефолту работает так, как вы и хотите:

By default, the form will redirect to the URL the user requested (i.e. the URL which triggered the login form being shown). For example, if the user requested http://www.example.com/admin/post/18/edit, then after they have successfully logged in, they will be sent back to http://www.example.com/admin/post/18/edit.

Redirecting after Success¶


Видимо у вас поведение изменено через always_use_default_target_path:
Changing the default Page¶

...или иным способом...
Ответ написан
glaphire
@glaphire
PHP developer
В классе LoginFormAuthenticator в методе onAuthenticationSuccess написать:
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
    {
        if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
            return new RedirectResponse($targetPath);
        }

        return new RedirectResponse($this->router->generate('app_homepage'));
    }

Предварительно добавить в этот класс трейт TargetPathTrait.
Урок по этой теме на symfonycasts
UPD. Нашла документацию на этот пример
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы