Disable Cookies in Rails 3.x app

帅比萌擦擦* 提交于 2020-01-15 01:24:13

问题


Is there a way to disable all cookies for a Rails app? Or preferably on a controller by controller basis? My problem is regarding access of a Rails JSON api by an Adobe Lightroom plugin. Apparently the presence of any cookie data in the response from the server causes an error in Lightroom.


回答1:


In the controller you want to avoid cookies, add this:

after_filter :skip_set_cookies_header

def skip_set_cookies_header
  request.session_options = {}
end

If you have a set of api controllers, set this in a api_controller class and let your other controllers inherit the api_controller.

This skips setting Set-Cookie header since the session opts is empty.




回答2:


If you're using Apache, you can turn probably turn off cookies in the response by using mod_headers, which is a standard apache mod.

Header always unset "Set-Cookie"




回答3:


You might want to use ActionController::Metal and add any additional modules that you might need.

ActionController::Metal is pretty barebone and skips most of the functionality of a typical ApplicationController including cookies.

You can call ApplicationController.ancestors to get an idea of what is typically included in contrast with ActionController::Metal.ancestors

Here's how I would most likely set it up.

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

class FirstApiController < SimpleController
 def index
  #Code 
 end
end 

class SecondApiController < SimpleController
 def index
  #Code 
 end
end 


来源:https://stackoverflow.com/questions/7247257/disable-cookies-in-rails-3-x-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!