Sha256: fe7503dbb1493bd1ed422beedf86e86f0f98fc901179abdd41e81e2984c12646

Contents?: true

Size: 556 Bytes

Versions: 3

Compression:

Stored size: 556 Bytes

Contents

# frozen_string_literal: true

class ApplicationController < ActionController::API
  before_action :authenticate_user!

  # @return [void]
  def authenticate_user!
    request.env["keycloak:session"].authenticate! do |m|
      m.success(:authenticated) do |_, token|
        @current_user = { keycloak_id: token.keycloak_id }
      end

      m.success do
        @current_user = { anonymous: true }
      end

      m.failure do |code, reason|
        render json: { errors: [{ message: "Auth Failure" }] }, status: :forbidden
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
keycloak_rack-1.1.1 spec/dummy/app/controllers/application_controller.rb
keycloak_rack-1.1.0 spec/dummy/app/controllers/application_controller.rb
keycloak_rack-1.0.0 spec/dummy/app/controllers/application_controller.rb