CSRF在刷新网页上检测到错误消息

时间:2018-01-25 10:15:04

标签: ruby-on-rails facebook-graph-api ruby-on-rails-5 omniauth-facebook protect-from-forgery

我正在开发一个Rails应用程序,其中详细信息从Facebook获取。我从facebook上获取了详细信息。但是当我刷新网页时,我收到了一个名为CSRF的错误。我使用了一些方法,但都失败了。

facebook Graph API用于编辑操作。

这些是在Employees Controller的内部类中添加的。

  1. skip_before_action :verify_authenticity_token

  2. skip_before_action :verify_authenticity_token, only: [:edit]

  3. protect_from_forgery :only => [:edit]

  4. skip_before_action :authenticate_user, only: [:edit]

  5. skip_before_action :authenticate_user!

  6. 当使用authenticate_user时(第4和第5种情况)我得到了一个参数错误, Before process_action callback :authenticate_user has not been defined

    在所有其他情况下,使用facebook更新页面后刷新页面时的错误是 OmniAuth::Strategies::OAuth2::CallbackError

    csrf_detected | CSRF detected

    PS:我使用'omniauth-facebook'和'koala'gem进行整合。

2 个答案:

答案 0 :(得分:2)

执行redirected_to到需要打印详细信息的页面。

答案 1 :(得分:1)

我之前遇到过这个问题,我之前尝试过验证真实性令牌,但只有在我重定向页面时才能解决 所以我请你只是重定向页面。