Class: Rails::SessionCookie::WardenApp

Inherits:
App
  • Object
show all
Defined in:
lib/rails/session_cookie/warden_app.rb

Overview

This mini rack app helps setting warden session cookie

Instance Attribute Summary

Attributes inherited from App

#app

Instance Method Summary collapse

Methods inherited from App

#call, #session_cookie, simple_app_from_session_hash, simple_app_returning_rack

Constructor Details

#initialize(user, session_options = nil, scope = :user) ⇒ WardenApp

Returns a new instance of WardenApp.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rails/session_cookie/warden_app.rb', line 16

def initialize(user, session_options = nil, scope = :user)
  auth_session_options = session_options || rails_app.config.session_options
  serializer = Warden::SessionSerializer.new({})

  key = serializer.key_for(scope)
  value = serializer.store(user, scope)

  auth_app = proc { |env|
    env[Rails::SessionCookie::RACK_SESSION][key] = value
    [200, {}, []]
  }

  super(auth_app, auth_session_options)
end