我在 RoR 3 上编写了 RESTful API。 我必须让我的应用程序不发送“Set-Cookie header ”(客户端使用 auth_token 参数进行授权)。
我尝试过使用 session :off
和 reset_session
但它没有任何意义。
我正在使用 devise
作为身份验证框架。
这是我的应用程序 Controller
class ApplicationController < ActionController::Base
before_filter :reset_session #, :unless => :session_required?
session :off #, :unless => :session_required?
skip_before_filter :verify_authenticity_token
before_filter :access_control_headers!
def options
render :text => ""
end
private
def access_control_headers!
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "GET, POST, PUT, DELETE, OPTIONS"
response.headers["Access-Control-Allow-Credentials"] = "true"
response.headers["Access-Control-Allow-Headers"] = "Content-type"
end
def session_required?
!(params[:format] == 'xml' or params[:format] == 'json')
end
end
最佳答案
使用内置选项。
env['rack.session.options'][:skip] = true
或等价物
request.session_options[:skip] = true
您可以在此处找到它的文档 https://github.com/rack/rack/blob/master/lib/rack/session/abstract/id.rb#L213
关于ruby-on-rails - Rails 3 禁用 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5435494/