3

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

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

客户端应用程序通过 OAuth2 成功验证。为什么我会收到此警告,以及如何为外部 API 正确实施此 csrf?

4

2 回答 2

5

protect_from_forgery您的 ApplicationController 中删除(或将其删除以调用 API)。

于 2012-04-27T13:24:20.290 回答
2

仅为要打开的控制器关闭 CSRF 保护...这比protect_from_forgeryApplicationController. 在这种情况下,我以创建操作为例……尽管您可以根据需要进行修改。

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

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

关键是只开放需要开放的东西......

于 2014-07-21T08:21:41.537 回答