0

当远程服务访问我的 Rails 金属端点之一时,我正在尝试使用 HTTP 基本身份验证。

我想知道如何访问请求的用户名和密码。到目前为止,我已经打印出了整个 env 对象,并且在该对象的任何地方都找不到用户名或密码。

相反,我看到 "HTTP_AUTHORIZATION"=>"Basic 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

谢谢!

4

1 回答 1

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

我肯定会停用您发布的与您的问题一起编码的密码。:-)

于 2013-03-02T16:55:51.623 回答