2013-02-16 1 views
0

원격 서비스가 내 레일 금속 엔드 포인트 중 하나에 부딪 힐 때 HTTP 기본 인증을 사용하려고합니다.레일 금속 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 

감사 :

이상적으로는, 내가 좋아하는 일을하고 싶습니다!

답변

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 

질문과 함께 게시 된 비밀번호를 확실히 취소합니다. :-)