Facebook Canvas app:强制SSL

时间:2012-10-25 21:11:41

标签: facebook ssl canvas

在搜索网页一段时间后,我仍然无法找到解决问题的正确方法;如何确保浏览器重定向到https应用程序URL。由于canvas应用程序是iframe,因此我们无权将window.top.location更改为https等效项。

如果访客来

http://apps.facebook.com/app_name/

我希望他重定向到

https://apps.facebook.com/app_name/

完全无法在画布中加载的应用中使用javascript修复它,因为top.location由于跨域原始规则而无法篡改。它可以通过Facebook实施的重定向规则轻松修复,我很惊讶它不是Facebook应用程序设置中强制执行SSL的复选框。我们不希望通过http访问我们的游戏。

我已经测试过将Canvas URL和Secure Canvas URL设置为指向https网址,但这会产生此错误(跨网域问题):不安全的JavaScript尝试从框架中使用网址http://apps.facebook.com/app_name/访问框架网址https://s-static.ak.facebook.com/

请建议。

1 个答案:

答案 0 :(得分:1)

好的,所以 可以重定向顶部窗口。我第一次测试它时一定有错字。这个小小的脚本可以解决问题:

<script>
if ( window.location.protocol == 'http:' ) {
    window.top.location = 'https://apps.facebook.com/app_name/';
}
</script>

但是,我仍然不明白为什么这不是Facebook上的应用设置中的选项。使用服务器端重定向规则可以提高效率和用户友好性。