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