2010-12-13 10 views
2

Rails 2.3.4 앱에서 authenticate_with_http_basic을 사용하려고하는데 사용자 이름과 비밀번호를 가져 오지 않았습니다. 나는 약간의 형사 작업을했고 요청에 권한 헤더가 없기 때문에 실패했다는 것을 알아 냈습니다. 그래도 어느 아파치/승객 또는 잡종으로, 운이 없었어요Rails HTTP 기본 인증 실패

RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L] 

: 나는 문서에서 제안한다 RewriteRule을 추가했습니다. 나는 또한 Rails 3 앱에서 authenticate_with_http_basic을 시도하지 않았다. authenticate_or_request_with_http_basic으로 변경하면 프롬프트에 제공된 자격 증명이 작동하지만 URL에 제공된 인증서는 무시합니다. (그것은 authenticate_with_http_basic을 호출하기 때문에 이해가됩니다.) 요청을 망쳐야하는 코드에서 아무 것도 찾을 수 없으며, 그것이 내가 잡종과 로컬로 작동하지 않는다는 것이 이상하게 보입니다. 어떤 제안?

답변

3

Devise 나 Authlogic과 같은 인증 gem/plugin을 사용할 것을 강력히 권장합니다. 둘 다 기본 HTTP 인증을 지원합니다.

고안 : https://github.com/plataformatec/devisehttp://railscasts.com/episodes/209-introducing-devise

Authlogic : 미래의 시청자 https://github.com/binarylogic/authlogichttp://railscasts.com/episodes/160-authlogic

+0

저는 Authlogic을 사용하고 있습니다.하지만 문제는 사용자 인증 방법이 아니지만 데이터가 전달되지 않는 이유는 무엇입니까? 그리고 다른 접근법을 찾아 낼 수 있다고하더라도 authenticate_with_http_basic이 작동하지 않는 이유에 대해 궁금합니다! – Nancy

0

: 그것은 레일은 당신이 생각하는 것보다 인증 헤더에 대한 다른 무언가를받는 것으로 나타나는 경우 보내는, 체크 .htaccess/.htpasswd 파일을 사용하고 있지 않은지 확인하십시오. 브라우저는 자격 증명을 기억하고 전송 한 내용보다 우선합니다!

3 시간 정도 지나면 알아낼 수 있습니다.

관련 문제