我正在开发一个使用 facebook 和 oauth 的应用程序。该应用程序位于 facebook Canvas 内,身份验证在服务器端完成。该应用程序是使用 Ruby on Rails 3.2 完成的,使用 Koala 处理 api(并使用 mongodb 作为后端,这是值得的),并托管在 heroku 上。
因此,我提供 heroku url 作为回调的 redirect_url。这使得用户在身份验证后离开 Canvas ,好吧,我希望它留在里面。我阅读了一些关于此的主题,建议我在身份验证完成后使用 js 重定向到 Canvas url。我这样做了,但现在看来我的 session token 从未设置过,并且用户每次尝试查看非公共(public)页面时都会通过身份验证流程(这意味着他在欢迎页面上循环,有一个“不可见”每次都和 facebook 交流)。
我真的不明白我在这里做错了什么,所以欢迎任何帮助。如果您需要更多信息,请询问。
感谢您的宝贵时间!
最佳答案
所以我发现我的问题是什么:我的 Canvas 指向的页面是一个“公共(public)”页面,并且没有处理任何与身份验证相关的事情,这意味着它没有解析 signed_request
或任何东西别的。我最终为负责处理 signed_request
逻辑的 Canvas 设置了一个特殊端点,现在它可以正常工作。
关于ruby-on-rails - Facebook:oauth 回调后留在 Canvas 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10277358/