Rails / Doorkeeper:无法验证CSRF令牌的真实性

时间:2012-04-27 13:19:40

标签: ruby-on-rails oauth-2.0 csrf

我正在使用带有门卫gem的Rails 3.2为第三方提供OAuth 2 API。从应用程序外部使用我的REST API时,我不断收到此警告:

警告:无法验证CSRF令牌真实性

客户端应用已成功通过OAuth2进行身份验证。为什么我会收到此警告,以及如何正确地为外部API实现此csrf?

2 个答案:

答案 0 :(得分:5)

从ApplicationController中删除protect_from_forgery(或删除它以调用API)。

答案 1 :(得分:2)

仅为您要打开的控制器关闭CSRF保护...这比从protect_from_forgery删除ApplicationController更安全。在这种情况下,我以创建动作为例......虽然您可以根据自己的需要进行修改。

class MessagesController < ApplicationController
  protect_from_forgery with: :null_session, only: [:create]
  # doorkeeper_for :create
end

如果您通过门卫进行身份验证,请取消注释门卫线。

重点是只开放需要开放的东西......