Domanda

Per il mio ultimo progetto che sto usando https://github.com/hassox/rails_warden. Si adatta molto bene alle mie esigenze, tranne per il fatto che non riesco a trovare un buon modo per implementare Remember_Me. So che è notoriamente difficile ottenere Remember_Me dal punto di vista della sicurezza, quindi spero che ci sia un progetto là fuori che farà il lavoro. Qualcuno ha visto qualcosa o avere una buona idea?

È stato utile?

Soluzione

Escogitare, che è una soluzione di autenticazione in cima a Warden, ha a Ricordabile implementazione.

Altri suggerimenti

Ok ecco come l'ho risolto

 # User model must have remember_token attribute

 # in config.ru
 use Rack::Cookies
 run MyApp

  # in lib/strategies.rb
  Strategies.add(:cookie) do
    def valid?
      env['rack.cookies']['user.remember.token']      
    end

    def authenticate!
      if user = User.find_by_remember_token(cookies['user.remember.token'])
        success! user
      else
        fail! "Could not log in"
      end
    end
  end

  Manager.after_authentication :scope => :user do |user, auth, opts|
    auth.env['rack.cookies']['user.remember.token'] = user.generate_remember_token! # sets its remember_token attribute to some large random value and returns the value
  end

  Manager.before_logout :scoper => :user do |user, auth, opts|
    user.update_attribute :remember_token, nil
  end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top