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