Ctrl K
ComunidadGuías…

app/controllers/concerns/authentication.rb

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
module Authentication
  extend ActiveSupport::Concern

  included do
    before_action :find_current_session
    before_action :require_login

    helper_method :logged_in?
  end

  private

  def logged_in?
    Current.session.present?
  end

  def find_current_session
    Current.session = find_current_session_by_cookie || find_current_session_by_token
  end

  def require_login
    raise BlackCandy::Unauthorized unless logged_in?
  end

  def find_current_session_by_cookie
    Session.find_by(id: cookies.signed[:session_id])
  end

  def find_current_session_by_token
    authenticate_with_http_token do |token, _|
      Session.find_signed(token)
    end
  end
end