@symnoob

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

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

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

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

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

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

Есть ли идеи как это лучше сделать?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 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. Нашла документацию на этот пример
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы