我是Facebook应用程序的新手,所以也许我忽略了一些非常简单的事情。
我正在烧瓶框架上的GAE上进行开发。

这就是我设置我的Facebook应用程序的方式。 (请注意,本地主机上的https是通过stunnel设置的)


一切似乎正常,直到我必须对“登录”进行内部重定向。

def index(show_friends=None):
    if current_user.is_authenticated():
        return redirect(url_for("show_records"))
    if 'fbapp' in request.args:
        return redirect(url_for("login"))
    else:
        return render_template('index.html')


网址设置如下:

app.add_url_rule('/', 'index', view_func=views.index, methods=['GET', 'POST'])
app.add_url_rule('/login', view_func=views.login, methods=['GET', 'POST'])


这将失败,并显示以下消息:


连接被重置
页面加载时重置了与服务器的连接。


查看服务器日志,似乎登录重定向一并被忽略了。不知道为什么。

INFO     2013-07-14 12:15:39,026 dev_appserver.py:3105] "POST /?fbapp HTTP/1.1" 302


任何建议将不胜感激,

最佳答案

大胆猜测...但是问题可能是基于登录页面发回X-Frame-Options标头的事实,该标头不允许浏览器在iframe中显示页面。

如果登录页面最终成为了appengine登录页面,那么...该页面确实会返回X-Frame-Options标头,并且无法在iframe中加载。

如果最终导致问题,通常的解决方案是将登录页面加载到一个单独的新窗口中,该窗口在成功登录后会自动关闭。

10-04 20:02