module Hanami::Authentication

Constants

VERSION

Private Class Methods

included(base) click to toggle source
# File lib/hanami/authentication.rb, line 57
def self.included(base)
  base.class_eval do
    _expose :current_user
    extend  ClassMethods
  end
end

Private Instance Methods

authenticate(_params) click to toggle source
# File lib/hanami/authentication.rb, line 40
def authenticate(_params)
  if session_expired?
    logout
    self.class.after_session_expired_callbacks.run(self)
  elsif !authenticated?
    self.class.after_authentication_failed_callbacks.run(self)
  end
end
authenticate!() click to toggle source
# File lib/hanami/authentication.rb, line 33
def authenticate!
  if session_expired? || !authenticated?
    logout
    halt 401
  end
end
authenticated?() click to toggle source
# File lib/hanami/authentication.rb, line 49
def authenticated?
  !!session[:current_user]
end
create_password(password) click to toggle source
# File lib/hanami/authentication.rb, line 21
def create_password(password)
  BCrypt::Password.create(password)
end
current_user() click to toggle source
# File lib/hanami/authentication.rb, line 29
def current_user
  @current_user ||= session[:current_user]
end
login(user, remember_me: false, expire_seconds: 1 * 60 * 60) click to toggle source
# File lib/hanami/authentication.rb, line 9
def login(user, remember_me: false, expire_seconds: 1 * 60 * 60)
  session[:current_user] = user
  session[:session_created_at] = Time.now + expire_seconds
  session[:remember_me] = remember_me
end
logout() click to toggle source
# File lib/hanami/authentication.rb, line 15
def logout
  session[:current_user] = nil
  session[:session_created_at] = nil
  session[:remember_me] = nil
end
match_password?(user, password) click to toggle source
# File lib/hanami/authentication.rb, line 25
def match_password?(user, password)
  user && BCrypt::Password.new(user.password_digest) == password
end
session_expired?() click to toggle source
# File lib/hanami/authentication.rb, line 53
def session_expired?
  !session[:remember_me] && session[:session_expired_at] && session[:session_expired_at] < Time.now
end