Skip to content

Instantly share code, notes, and snippets.

@ZephiroRB
Created January 31, 2014 16:49
Show Gist options
  • Save ZephiroRB/8736021 to your computer and use it in GitHub Desktop.
Save ZephiroRB/8736021 to your computer and use it in GitHub Desktop.
Config warden Rails 4.0.2
Rails.configuration.middleware.use RailsWarden::Manager do |manager|
manager.default_strategies :remember_token
#manager.failure_app = LoginController
end
# Setup Session Serialization
class Warden::SessionSerializer
def serialize(record)
[record.class, record.id]
end
def deserialize(keys)
klass, id = keys
klass.find(id)
end
end
# RememberToken cookie strategy
class RememberTokenStrategy < Warden::Strategies::Base
def valid?
cookies[:remember_token]
end
def authenticate!
u = User.find_by(remember_token: User.encrypt( cookies[:remember_token]) )
if u
success! u
else
fail! t('session.message.error')
end
end
end
Warden::Strategies.add(:remember_token, RememberTokenStrategy)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment