2013-05-27 2 views
0

Я внедряю логин Facebook в своем приложении Rails 3. Я получил его для работы, но он перенаправляется на «URL-адрес сайта», указанный мной в приложении для Facebook. Я бы хотел, чтобы он перенаправлял страницу, с которой пользователь вошел в систему. Например, если они заходят с http://www.site.com/userprofile, тогда он должен оставаться на этой странице после входа в систему.Как я могу перенаправить на текущую страницу после успешного входа в систему Facebook

ответ

2

По соображениям безопасности Facebook будет перенаправлять обратно на предварительно зарегистрированный URL, вы не можете изменить его динамически. Вы должны получить обратный вызов на этом предварительно отформатированном URL-адресе, а затем перенаправить пользователя, где вы хотите впоследствии.

В качестве альтернативы вы можете запустить их через вход в Facebook во всплывающем окне, и в конце всплывающее окно просто сообщит window.opener для перезагрузки, а затем закроется. Просто отправьте его JavaScript в ответ.

+0

Предполагаю, что я хочу использовать этот параметр состояния или какой-либо другой метод. На самом деле я хочу использовать Ajax, чтобы, похоже, он обошел эту проблему. – William

+0

Я не уверен, что это хороший способ его реализации. Параметр State используется для предотвращения CSRF. В документе говорится: «Уникальная строка, используемая для поддержания состояния приложения между запросом и обратным вызовом. Когда Facebook перенаправляет пользователя обратно на ваш адрес redirect_uri, значение этого параметра будет включено в ответ. Вы должны использовать его для защиты от подделки запросов на межсайтовый запрос «. Если бы я был вами, я бы сохранил текущий url в данных сеанса, и когда пользователь перенаправляется на страницу, определенную в «URL сайта», проверьте данные сеанса, которые вы сохранили ранее, и перенаправляете его на него. – Oklahomer

Смежные вопросы