【问题标题】:Warden :renew option典狱长:续订选项
【发布时间】:2012-03-23 12:51:33
【问题描述】:

我正在使用 devise (1.5.3) 和warden (1.1.1),我不需要在用户登录/注册后更新 session_id

https://github.com/hassox/warden/blob/master/lib/warden/proxy.rb#L160

  if opts[:store] != false && opts[:event] != :fetch
    options = env[ENV_SESSION_OPTIONS]
    options[:renew] = true if options
    session_serializer.store(user, scope)
  end

转储选项:

options {:path=>"/", :domain=>nil, :expire_after=>nil, :secure=>false, :httponly=>true, :defer=>false, :renew=>false, :coder=># Rack::Session::Cookie::Base64::Marshal:0x00000004f50a10>, id=> "56d54b1b9820ee044151fdb4fdcb89db"}

如何配置 devise/warden 不将 options[:renew] 设置为 true ?

【问题讨论】:

    标签: ruby-on-rails ruby devise warden


    【解决方案1】:

    试试这个:

    env['rack.session.options'][:renew] = false
    

    【讨论】:

      【解决方案2】:
      Warden::Manager.after_set_user do |user,auth,opts|
        auth.env["rack.session.options"][:renew] = false
      end
      

      【讨论】:

      • 这发生在warden已经更新了会话ID之后。行不通。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 2017-09-05
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      相关资源
      最近更新 更多