在sinatra应用程序中使用 rack :: auth :: basic ,有一种方法可以从简单的yaml文件中查找用户和密码(无所谓如果密码保持清晰)?
示例yaml config / users.yml
---
:users:
usersA:
:password: passwordA
:otherdata: xxxxx
userB:
:password: passwordB
我正在尝试的sinatra配置块(没有成功)。我如何从yaml文件中查找用户?
configure do
config = YAML::load_file(File.join(Dir.pwd, 'config', 'users.yml'))
use Rack::Auth::Basic, "login" do |u, p|
[u, p] == [u, config[:users][username][:password]]
end
end
答案 0 :(得分:4)
简单如下:
configure do
config = YAML::load_file(File.join(Dir.pwd, 'config', 'users.yml'))
use Rack::Auth::Basic, "login" do |u, p|
p == config[:users][u][:password]
end
end
您也可以考虑将密码存储为SHA1并检查为:
Digest::SHA1.hexdigest(p) == config[:users][u][:password]