ruby-on-rails - Rails 3 禁用 session cookie

标签 ruby-on-rails ruby ruby-on-rails-3 session cookies

我在 RoR 3 上编写了 RESTful API。 我必须让我的应用程序不发送“Set-Cookie header ”(客户端使用 auth_token 参数进行授权)。

我尝试过使用 session :offreset_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/

相关文章:

ruby-on-rails - 如何在 Rails 应用程序模板中使用 postgres?

html - 从 URL 中删除默认的 'GET' 方法参数

ruby-on-rails - CTRL+C 忽略 Webbrick 服务器

ruby-on-rails - 如何使用 devise parent_controller 来设计继承的 Controller ,但跳过 ActiveAdmin 设计 Controller ?

ruby-on-rails - 停止使用破折号保存字符串数组

ruby-on-rails - 如何使用带有 ActionCable 的 devise_token_auth 来验证用户?

Ruby:如何对字符串进行排序,并保留一些字符?

html - Ruby Builder - XML 输出正在编码 HTML 实体

ruby - 双小于负 "<<-"符号在 ruby 中有什么意义吗?

ruby - Mongoid 模型警告引用的顶级常量