gpt4 book ai didi

sinatra - 如何在 Sinatra 中排除要求基本身份验证的路径

转载 作者:行者123 更新时间:2023-12-04 13:45:10 29 4
gpt4 key购买 nike

我正在使用 Sinatra 在 Ruby 中编写一个小型 Web 服务。使用 http 基本身份验证(在生产中通过 https)控制对几乎所有内容的访问。

我想从要求授权中排除一个特定的目录。是否有捷径可寻?

最佳答案

require 'sinatra'

helpers do
def protected!
unless authorized?
response['WWW-Authenticate'] = %(Basic realm="Testing HTTP Auth")
throw(:halt, [401, "Not authorized\n"])
end
end

def authorized?
@auth ||= Rack::Auth::Basic::Request.new(request.env)
@auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['admin', 'admin']
end
end

before { protected! unless request.path_info == "/public" }

get('/public') { "I'm public!" }

关于sinatra - 如何在 Sinatra 中排除要求基本身份验证的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2062801/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com