gpt4 book ai didi

ruby-on-rails - 修复 Rails oauth facebook x-frame-options 同源错误

转载 作者:行者123 更新时间:2023-11-30 05:23:40 24 4
gpt4 key购买 nike

我这辈子都无法显示我的 Facebook Canvas 应用程序。 Chrome 控制台显示此错误并且 iframe 中没有显示任何内容 - 它是空白的:

拒绝在框架中显示“http://mysite.dev/”,因为它将“X-Frame-Options”设置为“SAMEORIGIN”。

我正在使用 Rails 4.0.0.rc1omniauth-facebook 1.4.1,遵循 Railscast on Facebook Authentication作为指南。我没有使用任何 Javascript 代码,因为它是可选的,理想情况下,应用程序只能在 Facebook 内访问。

routes.rb

  match 'auth/:provider/callback', to: 'sessions#create', via: [:get, :post]
match 'auth/failure', to: redirect('/'), via: [:get, :post]
match 'signout', to: 'sessions#destroy', as: 'signout', via: [:get, :post]

sessions_controller.rb

class SessionsController < ApplicationController

def create
user = User.from_omniauth(env["omniauth.auth"])
session[:user_id] = user.id
redirect_to root_url
end

def destroy
session[:user_id] = nil
redirect_to root_url
end

application_controller.rb

我不得不对此发表评论,因为我不断收到 InvalidAuthenticityToken 错误,这让我浪费了半天时间。更多关于 here .

  # protect_from_forgery with: :exception

Facebook 设置

  • 应用域:myapp.dev
  • Canvas URL:http://myapp.dev
  • Secure Canvas URL:-- 空白 -- 如果指定了 https,我会得到网页不可用

在我开始翻 table 之前请帮忙。 :)

最佳答案

在 Rails 4 中,X-FRAME-OPTIONS 在 header 中设置为 SAMEORIGIN,我猜这会阻止它加载到框架中,如 this issue 中所述。 . 1人笔记the difficulty this will cause Facebook app developers .

我设法通过将以下内容添加到 application.rb 来解决这个问题:

config.action_dispatch.default_headers[:'X-Frame-Options'] = "ALLOW-FROM https://apps.facebook.com"

我也用过Forward创建一个域以允许 Facebook 访问我的本地开发机器。我在 Facebook 的 canvassecure canvas 字段中输入了这个域。强烈推荐。

更多信息在这里:

关于ruby-on-rails - 修复 Rails oauth facebook x-frame-options 同源错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16573411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com