Symfony2. Переадресация на login_check in не перехватывается

0

Я хотел бы подтвердить аутентификацию пользователя после его регистрации.

Итак, registrationAction:

public function registrationAction(Request $request) {
    //Creating user...

    return $this->forward('AcmeFrontBundle:Mobile:securityCheck', array(
        '_username' => $customer->getEmail(),
        '_password' => 'pwd',
    ));
}

Проблема в том, что система безопасности Symfony не перехватывает это перенаправление, но выполняет непосредственно securityCheckAction, который естественно пуст.

Перенаправление работает таким образом:

    return $this->redirect($this->generateUrl('mobile_login_check') . "?_username=" . $customer->getEmail() . "&_password=pass");

Пересылка предпочтительнее, потому что я хотел бы использовать запрос POST для регистрацииAction и securityCheckAction.

Есть идеи?

С другой стороны, возможно, лучше было бы аутентифицировать пользователя самостоятельно? Как описано здесь: http://symfony.com/doc/current/cookbook/testing/simulating_authentication.html

Каково твое мнение?

  • 0
    взгляните на FOSUserBundle. Это обеспечивает всю эту функциональность и массы больше.
  • 0
    Я просто использовал $token = new UsernamePasswordToken($customer, $customer->getPassword(), 'secured_mobile', $customer->getRoles()); $this->get('security.context')->setToken($token); , Это просто и эффективно.
Теги:
security

1 ответ

0
Лучший ответ

Попытка выполнить перенаправление с помощью POST - это не очень хорошая идея. Вот почему: https://softwareengineering.stackexchange.com/questions/99894/why-doesnt-http-have-post-redirect

Лучший способ - создать токен & emit login: Как программно войти/подтвердить подлинность пользователя?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню