как добавить Auth ::Basic в простое приложение для стойки

#ruby #rack

#ruby #rack

Вопрос:

как я могу добавить это

 use Rack::Auth::Basic do |username, password|
  username == 'pippo' amp;amp; password == 'pluto'
end
  

для этого

 class HelloWorld
  def call(env)
    req = Rack::Request.new(env)
    case req.path_info
    when /badges/
      [200, {"Content-Type" => "text/html"},  ['This is great !!!!']]
    when /goodbye/
      [500, {"Content-Type" => "text/html"}, ["Goodbye Cruel World!"]]
    else
      [404, {"Content-Type" => "text/html"}, ["I'm Lost!"]]
    end
  end
end


run HelloWorld.new
  

У меня есть это простое приложение для стойки, и мне нужно добавить Auth ::Basic.

Спасибо

Ответ №1:

Вам нужно использовать Rack::Builder для создания стека приложений для стойки.

Пример:

 # app.ru
require 'rack'

class HelloWorld
  def call(env)
    req = Rack::Request.new(env)
    case req.path_info
    when /badges/
      [200, {"Content-Type" => "text/html"},  ['This is great !!!!']]
    when /goodbye/
      [500, {"Content-Type" => "text/html"}, ["Goodbye Cruel World!"]]
    else
      [404, {"Content-Type" => "text/html"}, ["I'm Lost!"]]
    end
  end
end

app = Rack::Builder.new do
  use Rack::Auth::Basic do |username, password|
    username == 'pippo' amp;amp; password == 'pluto'
  end

  map '/' do
    run HelloWorld.new
  end
end

run app
  

И для его запуска:

 $ rackup app.ru