Ruby on rails 禁用Rails 3.x应用程序中的Cookie

Ruby on rails 禁用Rails 3.x应用程序中的Cookie,ruby-on-rails,ruby-on-rails-3,cookies,session-cookies,lightroom,Ruby On Rails,Ruby On Rails 3,Cookies,Session Cookies,Lightroom,有没有办法禁用Rails应用程序的所有cookie?或者最好是在一个控制器一个控制器的基础上?我的问题是通过Adobe Lightroom插件访问Rails JSON api。显然,来自服务器的响应中存在任何cookie数据都会导致Lightroom中出现错误。如果您使用的是Apache,则可以通过使用关闭响应中的cookie,这是一个标准的Apache mod 标题始终取消设置“设置Cookie”在要避免Cookie的控制器中,添加以下内容: after_filter :skip_set_co

有没有办法禁用Rails应用程序的所有cookie?或者最好是在一个控制器一个控制器的基础上?我的问题是通过Adobe Lightroom插件访问Rails JSON api。显然,来自服务器的响应中存在任何cookie数据都会导致Lightroom中出现错误。

如果您使用的是Apache,则可以通过使用关闭响应中的cookie,这是一个标准的Apache mod


标题始终取消设置“设置Cookie”

在要避免Cookie的控制器中,添加以下内容:

after_filter :skip_set_cookies_header

def skip_set_cookies_header
  request.session_options = {}
end
如果您有一组api控制器,请在api_控制器类中设置该控制器,并让其他控制器继承该api_控制器


由于会话选项为空,此操作将跳过设置集Cookie头。

您可能需要使用ActionController::Metal并添加可能需要的任何其他模块

ActionController::Metal非常简单,跳过了典型应用程序控制器(包括cookie)的大部分功能

您可以调用ApplicationController.Founders了解与ActionController::Metal.Founders相比,通常包含哪些内容

下面是我最可能的设置方式

class SimpleController < ActionController::Metal
 #include ...
 #include ...
end

class FirstApiController < SimpleController
 def index
  #Code 
 end
end 

class SecondApiController < SimpleController
 def index
  #Code 
 end
end 
class SimpleController
Cookie通常用于CSRF保护,我认为禁用它们会打开安全漏洞,并且在使用post请求访问rails堆栈时可能会出现问题。你有没有考虑过使用AdobeLightroom和rails,看看是否有具体的文档?没有,对不起。我认为API有这样的需求是愚蠢的。真的吗?我认为强迫发送cookie头并为一个API设置不必要的会话数据是愚蠢的,该API使用自己的签名系统和身份验证令牌进行身份验证。不幸的是,我对此没有半个答案。原来lightroom出现的cookie问题是由于Desive中的一个函数,该函数在登录用户到达我的控制器之前根据cookie重定向该用户。因此,它没有返回一个JSON对象,而是将重定向发送回我的主页。因此,我在我的应用程序控制器中重写了重定向到的设计方法来解决这个问题。虽然我没有禁用cookies来修复它,但我不能真正提供这个问题的答案。Rails Cookie似乎是一种“全有或全无”的设置:(如果您只有非常简单的基于令牌的身份验证,那么您真的需要设计吗?