require "kemal" require "kemal-basic-auth" basic_auth "username", "password" get "/" do |env| "This is shown if basic auth successful." end Kemal.run
This will add basic authorization to all routes in your application. However, some applications only need authorization on some of its routes. This is something can be easily done by creating a custom authorization handler.
require "kemal-basic-auth" class CustomAuthHandler < Kemal::BasicAuth::Handler only ["/dashboard", "/admin"] # routes with basic authorization def call(context) return call_next(context) unless only_match?(context) super end end Kemal.config.auth_handler = CustomAuthHandler