23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/obscured-doorman/strategies/remember_me.rb', line 23
def self.registered(app)
app.use Rack::Cookies
Warden::Strategies.add(:remember_me, Strategies::RememberMeStrategy)
app.before do
warden.authenticate(:remember_me)
end
Warden::Manager.after_authentication do |user, auth, _opts|
if auth.winning_strategy.is_a?(Strategies::RememberMeStrategy) ||
(auth.winning_strategy.is_a?(Strategies::Password) && auth.params['user']['remember_me'])
token = user.tokens.where(type: :remember).first
user.remember_me! auth.env['rack.cookies'][Doorman.configuration.remember_cookie] = {
value: token.token,
expires: (Time.now + Doorman.configuration.remember_for.days.seconds),
path: '/'
}
end
end
Warden::Manager.before_logout do |user, auth, _opts|
user&.forget_me! if user
auth.env['rack.cookies'].delete(Doorman.configuration.remember_cookie)
end
end
|