我正在尝试模仿示例http://tipfy-auth.appspot.com中的登录页面(来源http://code.google.com/p/tipfy/source/browse/examples/auth/app/)没有成功。当用户被重定向回页面时,我似乎遇到了问题。当前的请求流程如下所示:
登录页面( LoginHandler
) -> Facebook 重定向 ( FacebookAuthHandler
) 302 -> Facebook.com -> Facebook 重定向 ( FacebookAuthHandler
) 302 -> 注册页面 ( ) 302 -> 登录页面 ( SignupHandler
) LoginHandler
。
这里的问题(据我所知)是从注册(应该是端点)到登录页面的最后一个 302(http-redirect)。
经过一些密集的日志记录(无法在本地进行测试)后,似乎从 facebook 返回时设置了一个会话。会话在请求处理程序 ( FacebookAuthHandler
) 的两个地方self.auth.session
(a dict) 和self.session
(a SecureCookieSession
) 中存储为 dict,但在重定向到 SignupPage 之后self.auth.session
为 None。
发生从 SignUpPage 到 LoginPage 的重定向是因为SignupHandler
's get 方法有一个装饰器@login_required
,self.auth.session
用于确定是否应在此处处理或重定向请求。
那么,为什么 self.auth.session 不保留在请求之间,而 self.session 保留呢?是否self.auth.session
按每个要求设置?会话如何存储?如果它在数据库中,数据存储类型是否重要(主/从或高复制)。
我正在挖掘源代码,但找不到任何有用的东西。
..弗雷德里克
编辑
下面贴出答案。