2011-08-15 8 views
4

GAE、Python、およびJSの組み合わせを使用して、facebook APIに接続するアプリケーションを作成しました。唯一の暗礁:私のアプリで - Facebookのクッキーが存在する場合、私がチェックする最初の事はある:私のログイン・ハンドラでJS + Pythonを使用してfacebook cookieを見つけるのが遅い

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

else: 
    {render login.html} 

私は再び持っていない人を避けるためにクッキー(同じcodestructure)をチェックしますこのページにアクセスするクッキー。これは設計どおりに動作します。

Cookieが存在する場合、これを検出するには少し時間がかかるようです。だから、ログが行く:インデックス・ハンドラでは見られない

  • クッキーを、
  • をハンドラにログインするためにリダイレクトログイン・ハンドラは、インデックス・ハンドラにリダイレクトすると、ログイン・ハンドラで見つかっログイン-HTML
  • クッキーを描きます
  • インデックスハンドラは、インデックスHTML

を描くこれは明らかに、ユーザを終了するに表示され、loginscreenは、次に描画し、従って第二以降、正しいindexscreenが描かれています。

この遅延の原因は何ですか?私はクッキーがサーバーに転送されている場合、その原因があるのだろうか?もしそうなら、これをコードする方法は?

答えて

0

Cookie fbsr_<application_id>は、ユーザーがFacebookで認証され、アプリケーションにリダイレクトされ、JavaScriptのAPIメソッドFB.init()cookie: trueで実行された後にのみ設定されます。

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

つまり、ユーザーがアプリケーションにリダイレクトされた直後にCookieが設定されません。

関連する問題