ruby-on-rails - 设计 + OmniAuth Saml:ActionController::InvalidAuthenticityToken

标签 ruby-on-rails devise omniauth saml saml-2.0

我将 Devise 与 OmniAuth for Saml 结合使用。 Saml 回调不会回发 csrf token ,因此我收到此错误:

ActionController::InvalidAuthenticityToken at /users/auth/saml/callback

因此,为了防止 CSRF 检查我的 SAML 回调,我为 saml 方法添加了 :except 。 但这似乎不起作用。有什么方法可以防止 CSRF 使用 Devise 和 OmniAuth 检查 SAML 回调?

这是我的 OmniauthCallbacks Controller :

class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  protect_from_forgery :except => [:saml]

  def saml
    response = OneLogin::RubySaml::Response.new(params[:SAMLResponse])

    raise response.to_yaml

    # if response.is_valid?
    #   redirect_to root_url
    # end
  end
end

最佳答案

我在一个代码库中,通过在 Controller 顶部使用这个位来解决这个问题:

skip_before_filter :verify_authenticity_token

关于ruby-on-rails - 设计 + OmniAuth Saml:ActionController::InvalidAuthenticityToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24807539/

相关文章:

ruby-on-rails - 图像未加载到 Rails heroku 应用程序上

ruby-on-rails - Web Framework - Ruby on Rails 还是适合初学者的 Django?

ruby-on-rails - Rails 5 ActionController::InvalidAuthenticityToken 错误

rspec - 为 nil :NilClass"in integration test for OmniAuth 获取 "undefined method ` env'

ruby-on-rails - Heroku 上的 ActionCable 服务器响应时间

javascript - 在 format.html 和 format.js 之间显示 Rails3 Flash 消息?

ruby-on-rails - 使用 Rails/Devise 强制用户在几天后更改密码

ruby-on-rails - 使用 Rails 和 Devise 进行 token 身份验证

ruby-on-rails-3 - 需要在Rails 3.2中使用OmniAuth-Twitter进行OAuth::Unauthorized 401授权

ruby-on-rails - 我正在使用 Rails Castomniauth 并收到此错误