Erinnere dich an den Aufseher
-
10-10-2019 - |
Frage
Für mein letztes Projekt verwende ich https://github.com/hassox/rails_warden. Es passt sehr gut zu meinen Bedürfnissen, außer dass ich keinen guten Weg finden kann, um remm_me zu implementieren. Ich weiß, dass es notorisch schwierig ist, sich aus Sicherheit zu erinnern, dass es ein Projekt gibt, das den Job erledigt. Hat jemand etwas gesehen oder eine gute Idee bekommen?
Lösung
Entwickeln, was eine Authentifizierungslösung über den Aufseher ist, hat a erinnere sichbar Implementierung.
Andere Tipps
Ok, so habe ich es gelöst
# 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow