Я реализую страницу с формой на Symfony с особым обращением. Когда пользователь нажимает кнопку, вызов в AJAX отправляется на мой сервер. Когда пользователь не аутентифицирован, мы помещаем информацию в ответ, и клиент отображает всплывающее окно входа в Facebook Connect Link. Все это в порядке. Теперь, если пользователь нажимает ссылку Facebook Connect, я внедрил this. Моя проблема заключается в том, что если пользователь вошел в Facebook, этот код делает перенаправление с этим:Войти с HWIOAuthBundle в AJAX
document.location = "{{ url("hwi_oauth_service_redirect", {service: "facebook"}) }}";
я хотел бы заменить этот код с вызовом в AJAX для аутентификации пользователя на сервере, то получите ответ, и если ответ будет готов, отправьте мою форму еще раз. Как я могу это сделать?
Я разработал обработчик для возврата ответа в JSON с функцией onAuthenticationSuccess и onAuthenticationFailure. В этой части нет проблем. Поэтому моя проблема прежде.
На самом деле, мне бы хотелось, например, как «Список вашего пространства» на сайте Airbnb. См. here.
Заранее благодарим за ваш ответ.
Спасибо, но ваше решение не работает.Я пробовал это с JQuery, и я отлаживал код. Запрос AJAX вызывает ConnectController.redirectToServiceAction, но я думаю, что проблема в том, что эта функция возвращает ответ на перенаправление, а с AJAX он не работает. Вы пробовали и проверяли свое решение? Пожалуйста, помогите мне. Благодарю. – nairbeau
О да, я сказал вам, что ... b ...! В архитектуре oauth пользователь должен быть перенаправлен на аутентификатор (здесь facebook) для аутентификации и/или авторизации вашего приложения для доступа к его пользовательским данным. Вы не сможете сделать это в ajax, потому что вы не можете запросить другой домен. Вы можете попробовать использовать [CORS] (http://devcenter.kinvey.com/html5/tutorials/how-to-implement-safe-signin-via-oauth#OAuthandJavaScript), но вы потеряете некоторую безопасность в этом процессе (и я не знаю, разрешает ли ему facebook). Завтра я изменю свой ответ, чтобы дать вам лучшее объяснение, почему это невозможно. – Gnucki
Я попробовал ваше последнее бонусное решение. У меня не было ошибок, но моя проблема в том, что я не знаю, как публиковать свою форму. Фактически, я нашел веб-сайт, который сделал бы результат, который я бы хотел. См. Здесь https://www.airbnb.fr/rooms/new. Пожалуйста, можете ли вы дать нам решение с тем же поведением и рабочим процессом? Я отредактировал и улучшил свой вопрос с этим. – nairbeau