例http://tipfy-auth.appspot.com(ソースhttp://code.google.com/p/tipfy/source/browse/examples/auth/app/)のログインページを模倣しようとしています。成功せずに。ユーザーがページにリダイレクトされると、問題が発生するようです。現在のリクエストフローは次のようになります。
LoginPage(LoginHandler
)-> Facebookリダイレクト(FacebookAuthHandler
)302-> Facebook.com-> Facebookリダイレクト(FacebookAuthHandler
)302-> SignupPage(SignupHandler
)302-> LoginPage(LoginHandler
)。
ここでの問題(私が理解した限り)は、サインアップ(エンドポイントである必要があります)からログインページへの最後の302(http-redirect)です。
いくつかの集中的なログ記録の後(これをローカルでテストするために見つけることができません)、Facebookから戻ったときにセッションが設定されているようです。セッションは、リクエストハンドラー(FacebookAuthHandler
)のdictとして2つの場所self.auth.session
(dict)とself.session
(a SecureCookieSession
)に保存されますが、SignupPageへのリダイレクト後self.auth.session
はNoneです。
SignUpPageからLoginPageへのリダイレクトは、SignupHandler
's getメソッドに、要求をここで処理するかリダイレクトするかを決定するデコレータ@login_required
があるために発生します。self.auth.session
では、なぜself.sessionが保持されているのに、リクエスト間でself.auth.sessionが保持されないのでしょうか。self.auth.session
リクエストごとに設定されていますか?セッションはどのように保存されますか?それがデータベースにある場合、データストアのタイプは重要ですか(マスター/スレーブまたは高レプリケーション)。
ソースコードを調べていますが、役立つものが見つかりません。
..fredrik
編集
以下に回答を投稿しました。