为什么 Facebook oauth 会尝试访问 https 站点的 http 版本?
Why would Facebook oauth try to access the http version of an https site?
当我尝试在该网站上使用 Facebook 登录时:
通过单击页面顶部的按钮,我得到一个带有 URL:
的弹出窗口
我输入我的 Facebook 信用并提交。在 Safari 中,这有效并完成登录。在 Chrome 中,弹出窗口变为空白但保持打开状态。弹窗URL是
https://parlay.io/_oauth/facebook?close&code=...
弹出式控制台显示:
未捕获的安全错误:阻止了来源为“https://parlay.io”的框架访问来源为“http://parlay.io”的框架。请求访问的帧协议为 "https",被访问的帧协议为 "http"。协议必须匹配。
错误发生在第23行:
我不知道为什么这个弹出窗口试图访问 http://parlay.io
。我的应用程序中的任何位置都没有 http
或 http://parlay.io
作为设置。
这是使用 'popup' 风格的 oauth。当我在 Chrome 中切换到 'redirect' 样式时,第一次登录时,我在服务器上收到此错误:
{"line":"398","file":"oauth_server.js","message":"Error in OAuth Server: redirectUrl (http://parlay.io/) is not on the same host as the app (https://parlay.io/)","time":{"$date ":1435164688847},"level":"warn"}[parlay.io]
我被重定向到同一个登录页面。我第二次单击登录时,它起作用了。第二次点击可以自动执行:
我遇到了完全相同的问题,在类似的条件下(Meteor 1。3.x,ROOT_URL 设置为 https,FB/Twitter 应用程序设置为 https。)
解决我问题的方法是将我的网站设置为始终将 HTTP 请求重定向到 HTTPS。我正在使用 Cloudflare,所以我按照此处的说明操作:
进行更改后,登录在不同机器上的效果非常好。最终结果在这里:
当我尝试在该网站上使用 Facebook 登录时:
通过单击页面顶部的按钮,我得到一个带有 URL:
的弹出窗口我输入我的 Facebook 信用并提交。在 Safari 中,这有效并完成登录。在 Chrome 中,弹出窗口变为空白但保持打开状态。弹窗URL是
https://parlay.io/_oauth/facebook?close&code=...
弹出式控制台显示:
未捕获的安全错误:阻止了来源为“https://parlay.io”的框架访问来源为“http://parlay.io”的框架。请求访问的帧协议为 "https",被访问的帧协议为 "http"。协议必须匹配。
错误发生在第23行:
我不知道为什么这个弹出窗口试图访问 http://parlay.io
。我的应用程序中的任何位置都没有 http
或 http://parlay.io
作为设置。
这是使用 'popup' 风格的 oauth。当我在 Chrome 中切换到 'redirect' 样式时,第一次登录时,我在服务器上收到此错误:
{"line":"398","file":"oauth_server.js","message":"Error in OAuth Server: redirectUrl (http://parlay.io/) is not on the same host as the app (https://parlay.io/)","time":{"$date ":1435164688847},"level":"warn"}[parlay.io]
我被重定向到同一个登录页面。我第二次单击登录时,它起作用了。第二次点击可以自动执行:
我遇到了完全相同的问题,在类似的条件下(Meteor 1。3.x,ROOT_URL 设置为 https,FB/Twitter 应用程序设置为 https。)
解决我问题的方法是将我的网站设置为始终将 HTTP 请求重定向到 HTTPS。我正在使用 Cloudflare,所以我按照此处的说明操作:
进行更改后,登录在不同机器上的效果非常好。最终结果在这里: