2012-09-20 16 views
4

,有一種方法,我可以查找用戶,並從簡單的YAML文件密碼(不要緊,如果密碼保持清晰)?西納特拉,機架AUTH基本和查找使用<strong>架:: AUTH ::基本</strong>在西納特拉應用程序文件

例如YAML配置/ users.yml裏

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

的西納特拉配置阻止我試圖(沒有成功)。我如何從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

就這麼簡單:

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]