30 lines
667 B
Ruby
30 lines
667 B
Ruby
module WardenAuthentication
|
|
|
|
private
|
|
|
|
def ensure_authenticated!
|
|
warden.authenticate!(*warden_strategies, scope: warden_scope) unless warden.authenticated?(warden_scope)
|
|
end
|
|
|
|
def current_user
|
|
warden.authenticate(*warden_strategies, scope: warden_scope) unless warden.authenticated?(warden_scope)
|
|
warden.user(warden_scope)
|
|
end
|
|
|
|
def current_user=(user)
|
|
if user
|
|
warden.set_user(user, scope: warden_scope)
|
|
cookies[:auth_token] =
|
|
{ value: user.auth_token, expires: 1.year.from_now }
|
|
else
|
|
warden.logout(warden_scope)
|
|
cookies.delete(:auth_token)
|
|
end
|
|
end
|
|
|
|
def warden
|
|
request.env['warden']
|
|
end
|
|
|
|
end
|