Facebook проблема авторизации

голоса
3

Я работаю на приложение facebook и есть то, что я просто не понимая, о том, как работает их система авторизации.

Наша основная установка это

холст URL = domain.com/facebook

Это простая страница с элементом FBML Iframe, который указывает на domain.com/facebook/app, который является HTML-страница, которая обслуживает до приложения Flash-памяти.

Flash-приложение запрашивает дополнительные данные с нашего сервера приложений - некоторые из этих запросов запрашивать данные facebook (например, список идентификаторов друга).

Таким образом, флэш-то делает запрос на domain.com/resources/facebook/friends - это PHP-страница, которая создает экземпляр Facebook (их PHP библиотеку) и выполняет необходимый вызов их API и возвращает данные.

Тем не менее, запрос на этот URL (вспышка) не проверяет, поэтому он будет перенаправлен на их вход в систему , когда потом сам перенаправляет обратно мой холст URL с двумя параметров - auth_token и рядом . Таким образом, запрос является действительным, но редирект ломает флэш - вызов.

Таким образом, я пытаюсь выяснить, как сделать эти другие вызовы API (когда сама булава Facebook API вызовов) можно facebook-vaildated от начала.

Задан 27/01/2009 в 19:14
источник пользователем
На других языках...                            


2 ответов

голоса
1

Хорошо, я понял.

Как выясняется, Flash уже следует редирект - все , что мне нужно было сделать обнаружить (на холст URL) , когда был запрос авторизации (отмеченное присутствием auth_token и рядом ) и включают в auth_token в качестве параметра GET , когда я перенаправляется следующему URL ( в основном, направить auth_token к первоначальному запросу).

Так что, вопреки тому, что я сказал выше, редирект не нарушали вспышки вызова - это просто не было достаточно данных, чтобы быть корректным запрос.

Ответил 27/01/2009 в 21:55
источник пользователем

голоса
1

Решите, поставив ниже код вместо «require_login ()» линия

if (isset($_GET['auth_token'])) {
 $sess_data=$facebook->api_client->call_method('auth.getSession',array('auth_token'=>$_GET['auth_token']));
 $facebook->set_user($sess_data['uid'],$sess_data['session_key'],$sess_data['expires']);
 $user=$sess_data['uid'];
}
if (!$sess_data) {
 $user=$facebook->require_login();
}
Ответил 24/01/2010 в 21:01
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more