4

sinatra アプリケーションでrack::auth::basicを使用すると、単純な yaml ファイルからユーザーとパスワードを検索できる方法があります (パスワードが明確に保持されているかどうかは関係ありません)。

例 yaml config/users.yml

---
:users:
  usersA:
    :password: passwordA
    :otherdata: xxxxx
  userB:
    :password: passwordB

私が試しているsinatra configureブロック(成功しませんでした)。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
4

1 に答える 1

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]
于 2012-09-20T10:28:04.833 に答える