задержка в поиске куки-файла facebook с использованием JS + Python - PullRequest
4 голосов
/ 15 августа 2011

Используя сочетание GAE, Python и JS, я успешно создал приложение для подключения к Facebooks API. Только одна загвоздка: в моем приложении - первое, что я проверяю - существует ли файл cookie Facebook:

cookie = facebook.get_user_from_cookie(self.request.cookies, 
                                       FACEBOOK_APP_ID, 
                                       FACEBOOK_APP_SECRET)
if cookie:
    {render index.html}

else:
    {render login.html}

В моем обработчике входа в систему я снова проверяю cookie (та же самая структура кода), чтобы избежать доступа людей, у которых есть cookie, к этой странице. Это работает как задумано.

Единственная проблема заключается в том, что когда cookie существует, кажется, есть некоторая задержка в обнаружении этого. Итак, журнал идет:

  • cookie не найден в обработчике индекса, перенаправляя на обработчик входа в систему
  • login-handler рисует login-html
  • cookie, найденный в обработчике входа в систему, перенаправляющий на обработчик индекса
  • индекс-обработчик рисует index-html

Это ясно видно конечному пользователю, экран логина рисует, а затем, примерно через секунду, рисуется правильный индексный экран.

Что может быть причиной этой задержки? Мне интересно, если это вызвано, если куки передаются на сервер? Если да, то как обойти это?

1 Ответ

0 голосов
/ 08 августа 2012

Cookie fbsr_<application_id> будет установлен только после того, как пользователь будет аутентифицирован на Facebook, перенаправлен обратно в ваше приложение и метод API Javascript FB.init() будет выполнен с cookie: true.

FB.init({
    appId : '<application_id>',
    status : true,
    cookie : true,
    //...

Другими словами, cookie не устанавливается сразу после того, как пользователь перенаправлен обратно в ваше приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...