2010-04-17 5 views
0
  1. Я в процессе преобразования приложения facebook из fbml в iframe.

Теперь я тестирую несколько страниц iframe.Facebook canvas Iframe App authentication problem

$user = $facebook->require_login(); 

Это дает текущий пользователь авторизованы. После того, как получить переменную из facebook.com она сохраняет в печенье с помощью PHP API, предоставленной Facebook). Я вышел из другой вкладки facebook, и я попробовал использовать мое приложение, не обновляя весь сайт (просто используя ссылки внутри моего приложения). Он по-прежнему дает переменную $user.

Это означает, что пользователь вошел в систему, а не пользователь вышел из системы.

Пожалуйста, помогите мне. Я хочу, чтобы мое приложение было защищено.

  1. Он выглядит как приложение iframe, доступное, когда мы выбираем «открыть этот кадр в новом окне». Мне тоже нужно решение.

Заранее спасибо.

ответ

0

Вы вошли в систему, насколько вы вошли в систему facebook. Вам нужно будет создать пользовательскую обработку сеансов PHP. Тем не менее, если вы хотите удалить пользователя из куки приложения, вы можете сделать это:

//this will clear cookies for your application and redirect them to a login prompt 
$facebook->set_user(null, null); 
$facebook->redirect($appcallbackurl); 
+0

hi, Спасибо вам за ответ. У меня есть этот кусок кода. Можете ли вы сказать мне, в каком состоянии мне нужно запускать этот код. Когда файл cookie PHP API истекает, этот код запускает проверку ниже кода. Но я хочу, чтобы этот код запускался, когда пользователь больше не активен (зарегистрирован) в facebook. попробовать {\t \t если ($ facebook-> api_client-> users_isAppUser()) { \t \t $ facebook-> перенаправлять ($ facebook-> get_add_url()); \t} } catch (Exception $ ex) {// это очистит файлы cookie для вашего приложения и перенаправит их на приглашение для входа \t $ facebook-> set_user (null, null); \t $ facebook-> redirect ($ facebook-> get_login_url ($ app_url, 1)); } – itsoft3g

0

Вы можете использовать JavaScript SDK для подписки на событие выхода из системы через FB.Event.subscribe и перезагрузите страницу, если это произойдет :

FB.Event.subscribe ('auth.logout', функция (ответ) { SetTimeout ('window.location.reload()', 0); });

(Обертывание в SetTimeout() требуется в качестве обходного для Firefox.)

Чтобы запретить пользователям использовать «Открыть кадр в новом окне», вы можете проверить, если страница загружается в IFRAME с if (window == window.top) или если signed_request доступен. Если нет, переадресуйте URL-адрес вкладки.

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