Class: Authlogic::ControllerAdapters::RackAdapter
- Inherits:
-
AbstractAdapter
- Object
- AbstractAdapter
- Authlogic::ControllerAdapters::RackAdapter
- Defined in:
- lib/authlogic/controller_adapters/rack_adapter.rb
Overview
Adapter for authlogic to make it function as a Rack middleware. First you’ll have write your own Rack adapter where you have to set your cookie domain.
class YourRackAdapter < Authlogic::ControllerAdapters::RackAdapter
def
'your_cookie_domain_here.com'
end
end
Next you need to set up a rack middleware like this:
class AuthlogicMiddleware
def initialize(app)
@app = app
end
def call(env)
YourRackAdapter.new(env)
@app.call(env)
end
end
And that is all! Now just load this middleware into rack:
use AuthlogicMiddleware
Authlogic will expect a User and a UserSession object to be present:
class UserSession < Authlogic::Session::Base
# Authlogic options go here
end
class User < ActiveRecord::Base
acts_as_authentic
end
Instance Attribute Summary
Attributes inherited from AbstractAdapter
Instance Method Summary collapse
-
#cookies ⇒ Object
Rack Requests stores cookies with not just the value, but also with flags and expire information in the hash.
-
#initialize(env) ⇒ RackAdapter
constructor
A new instance of RackAdapter.
Methods inherited from AbstractAdapter
#authenticate_with_http_basic, #cookie_domain, #last_request_update_allowed?, #params, #request, #request_content_type, #responds_to_last_request_update_allowed?, #responds_to_single_access_allowed?, #session, #single_access_allowed?
Constructor Details
#initialize(env) ⇒ RackAdapter
Returns a new instance of RackAdapter.
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/authlogic/controller_adapters/rack_adapter.rb', line 41 def initialize(env) # We use the Rack::Request object as the controller object. # For this to work, we have to add some glue. request = Rack::Request.new(env) request.instance_eval do def request; self; end def remote_ip; self.ip; end end super(request) Authlogic::Session::Base.controller = self end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Authlogic::ControllerAdapters::AbstractAdapter
Instance Method Details
#cookies ⇒ Object
Rack Requests stores cookies with not just the value, but also with flags and expire information in the hash. Authlogic does not like this, so we drop everything except the cookie value
57 58 59 |
# File 'lib/authlogic/controller_adapters/rack_adapter.rb', line 57 def controller..map{|key, value_hash| {key => value_hash[:value]} }.inject(:merge) || {} end |