当远程服务命中我的一个Rails金属端点时,我正在尝试使用HTTP基本身份验证。
我想知道如何访问请求的用户名和密码。到目前为止,我已打印出整个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
谢谢!
答案 0 :(得分: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
我肯定会删除您用问题编码的密码。 : - )