Аутентификация Facebook: HttpServletResponse.sendRedirect (URL) отличается от ввода URL непосредственно в браузер? - PullRequest
0 голосов
/ 09 августа 2011

Я пытаюсь перенаправить своих пользователей на страницу «Запрос на разрешение» в Facebook, перенаправив их на

https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}

Когда я набираю URL-адрес непосредственно в браузере, он приходит кправая страница: появляется диалоговое окно с вопросом, согласен ли пользователь дать разрешение на мое приложение.

Но когда я отправляю запрос на перенаправление сервером:

response.sendRedirect("https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}");

Он отправляет пользователя встраница с большим логотипом Facebook .Если пользователь щелкнет по логотипу, он будет отображать страницу авторизации в обычном режиме.

Интересно, если я пропущу одну или две вещи в своем ответе, что отличает результат от ввода текста непосредственно в браузере.У кого-нибудь есть такая же проблема?

1 Ответ

2 голосов
/ 09 августа 2011

Это потому, что у вас не может быть приложения iFrame (на apps.facebook.com), содержащего страницу из домена Facebook.

Вам необходимо использовать JavaScript для перенаправления:

response.getWriter().println(
   "<script>" + 
   "top.location.href = \"https://graph.facebook.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&scope={permission_scope}\"" +
   "</script>"
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...