我正在使用带有 Doorkeeper gem 的 Rails 3.2 为第 3 方提供 OAuth 2 API。从应用程序外部使用我的 REST API 时,我不断收到此警告:
警告:无法验证 CSRF 令牌的真实性
客户端应用程序通过 OAuth2 成功验证。为什么我会收到此警告,以及如何为外部 API 正确实施此 csrf?
我正在使用带有 Doorkeeper gem 的 Rails 3.2 为第 3 方提供 OAuth 2 API。从应用程序外部使用我的 REST API 时,我不断收到此警告:
警告:无法验证 CSRF 令牌的真实性
客户端应用程序通过 OAuth2 成功验证。为什么我会收到此警告,以及如何为外部 API 正确实施此 csrf?
从protect_from_forgery
您的 ApplicationController 中删除(或将其删除以调用 API)。
仅为要打开的控制器关闭 CSRF 保护...这比protect_from_forgery
从ApplicationController
. 在这种情况下,我以创建操作为例……尽管您可以根据需要进行修改。
class MessagesController < ApplicationController
protect_from_forgery with: :null_session, only: [:create]
# doorkeeper_for :create
end
如果您通过门卫进行身份验证,请取消注释门卫行。
关键是只开放需要开放的东西......