Facebook Canvas 应用程序 : Force SSL

标签 facebook ssl canvas

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

如果访客来了

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

我想让他重定向到

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

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

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

请指教。

最佳答案

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

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

但是,我仍然不明白为什么这不是 Facebook 应用程序设置中的一个选项。使用服务器端重定向规则会更加高效和用户友好。

关于Facebook Canvas 应用程序 : Force SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13077363/

相关文章:

facebook - 个性化视频/Facebook 应用程序 - 最好的方法是什么?

Facebook 职位 API

android - 如何使用 Apache 客户端和 KeyChain API 从 Android 4.1 进行客户端证书身份验证

ssl - 如何使用 Apache HTTP 客户端 API 获取远程服务器不受信任的 SSL 证书

javascript - 使用 html 绘制数据图表

ios - FBSDKAccessToken.currentAccessToken() 每次都发现 nil

facebook - 将参数传递给 facebook 应用程序

php - 使用 SSL 远程连接时出现 MySQL 错误

c++ - 如何在 Canvas 上画一个径向渐变的圆?

java - 如何将一张 Canvas 的内容复制到另一张 Canvas 上?