Я создал собственное промежуточное программное обеспечение для рельсов, которое перехватит все запросы и убедитесь, что оно исходит от авторизованного IP-адреса, в противном случае он должен запросить базовый пароль пользователя/имени пользователя.Trigger basic HTTP auth изнутри промежуточного программного обеспечения
Это в настоящее время, как он выглядит:
require 'net/http'
class AuthorizeEnvironment
def initialize(app)
@app = app
end
def call(env)
if AppConstants.approved_doximity_ips.include?(env["REMOTE_ADDR"])
@app.call(env)
elsif authorized?(env)
@app.call(env)
else
[403, {"Content-Type" => "text/html"}, ["Not Authorized on this environment."]]
end
end
def authorized?(env)
@auth ||= Rack::Auth::Basic::Request.new(env)
@auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['username', 'password']
end
end
Проблема с этим кодом, что я не могу показаться, чтобы найти способ, чтобы вызвать окно HTTP аутентификации в браузере. Я рассмотрел this и не видел никаких явных признаков того, как это делается.
Не могли бы вы указать мне в правильном направлении?