Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Symfony - вернуть json объект после авторизации
acerrusm  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 139
Пользователь №: 39635
На форуме: 2 года, 6 месяцев, 17 дней
Карма:




Привет!

Подскажите пожалуйста как вернуть json объект после успешной авторизации в Symfony2/3?

Мой контроллер выглядет так:
class ClientLoginController extends Controller
{
/**
*
@Route("/login", name="login")
*/

public function loginAction(Request $request)
{
$client = new Client();
$form = $this->createForm(ClientLoginType::class, $client);

$form->handleRequest($request);

$authenticationUtils = $this->get('security.authentication_utils');

$lastEmail = $authenticationUtils->getLastUsername();

$error = $authenticationUtils->getLastAuthenticationError();

if ($form->isSubmitted() && $form->isValid())
{
return new JsonResponse(
array(
'message' => 'Success! Animal registered!',
'result' => $this->renderView('SymfonyBundle::client/success.html.twig')
),
200);
}

return $this->render(
'SymfonyBundle::security/security.html.twig',
array(
'login_form' => $form->createView(),
'error' => $error,
'last_email' => $lastEmail,
)
);

}
}



В security.yml настройка формы выглядет так:
form_login:
login_path: login
check_path: login
username_parameter: _email
failure_forward: false
default_target_path: login
csrf_token_generator: security.csrf.token_manager



В итоге, после успешной авторизации меня просто редиректит на саму страницу авторизации, а вот json объект я не получаю.

По идее, if ($form->isSubmitted() && $form->isValid()), вроде как должно определить что форма валидная и была отправлена.

Подскажите как такое разрулить?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dezigo  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Indiana Jones
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1000
Пользователь №: 5429
На форуме: 8 лет, 5 месяцев, 10 дней
Карма: 45




Тебе надо всё равно зарегистрировать новый TokenAuthenticator,
http://symfony.com/doc/current/cookbook/se...entication.html

Тогда можешь изменить поведение иммено

Это будет в новом TokenAuthenticator

public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
{
// on success, let the request continue
return new JsonResponse(
array(
'message' => 'Success! Animal registered!',
'result' => $this->renderView('SymfonyBundle::client/success.html.twig')
),
200);
}



А ещё попробуй это посмортеть
http://symfony.com/doc/current/cookbook/se...arget_path.html
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
acerrusm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 139
Пользователь №: 39635
На форуме: 2 года, 6 месяцев, 17 дней
Карма:




Dezigo,

Цитата
Тебе надо всё равно зарегистрировать новый TokenAuthenticator,
http://symfony.com/doc/current/cookbook/se...entication.html

Ну тут уже нужно использовать Guard, а без него разве никак? huh.gif

Цитата
А ещё попробуй это посмортеть
http://symfony.com/doc/current/cookbook/se...arget_path.html

Оказывается поменять default Target Path Behavior начиная с Symfony3 уже просто так не получится пруф
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
acerrusm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 139
Пользователь №: 39635
На форуме: 2 года, 6 месяцев, 17 дней
Карма:




Разобрался — создал authentication handler. Вот туториал smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса