【问题标题】:Redirect to internal URL ignored within facebook app canvas重定向到 Facebook 应用画布中忽略的内部 URL
【发布时间】:2013-07-12 10:29:36
【问题描述】:

我是 facebook 应用程序的新手,所以也许我忽略了一些非常简单的东西。 我正在烧瓶框架上的 GAE 上开发这个。

这就是我设置我的 Facebook 应用程序的方式。 (注意 localhost 上的 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

任何建议将不胜感激,

【问题讨论】:

    标签: facebook google-app-engine flask stunnel


    【解决方案1】:

    猜想...但问题可能在于登录页面发回的 X-Frame-Options 标头不允许浏览器在 iframe 内显示页面。

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

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

    【讨论】:

    • 有趣的是,您甚至没有在服务器上看到 /login 请求...但它可能只是被缓存了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    相关资源
    最近更新 更多