2013-02-16 43 views
0

我試圖在遠程服務點擊我的一個Rails金屬端點時使用HTTP基本驗證。Rails metal http basic驗證碼

我想知道如何獲得訪問請求的用戶名和密碼。到目前爲止,我已經打印出整個env對象,並且無法在該對象的任何位置找到用戶名或密碼。

相反,我看到 「HTTP_AUTHORIZATION」=> 「基本YW5yZ3JpZDpzYWZlbWFpbA ==」, 「PASSENGER_CONNECT_PASSWORD」=> 「U4vAn6lVAOe2C8nIQSWT93j3SFJkA5VxOicSeDspF9a」

但我不知道做什麼與此有關。

理想情況下,我想這樣做:

class MyHook 
    def self.call(env) 
    user = env[...] 
    pass = env[...] 
    if (user == "foo" && pass == "pass") 
     # do stuff 
    end 
    end 
end 

謝謝!

回答

1
require 'base64' 
# Decode the colon-separated, base64-encoded user and password after "Basic " 
user, pass = Base64.decode64(env['HTTP_AUTHORIZATION'].split[1]).split ':', 2 

我肯定會退出您發佈的用您的問題編碼的密碼。 :-)