2010-12-13 20 views
2

Rails 2.3.4アプリでauthenticate_with_http_basicを使用しようとしていて、ユーザ名とパスワードが取得されていません。私はちょっとした探偵仕事をして、リクエストに権限ヘッダーがないので、失敗していると分かりました。私も、どちらかのApache /乗客または雑種で、任意の運を持っていなかった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を呼び出しているので意味があります)。私のコードでは、リクエストを乱すべきであるものは何も見つかりませんでした。そして、それはMongrelとローカルでは動作していないと私には奇妙に思えます。助言がありますか?

答えて

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

:それはRailsがAuthorizationヘッダーのために別の何かを受信して​​いると思われる場合は、あなたが送信していると思うよりも、チェック.htaccess/.htpasswdファイルを使用していないことを確認してください。ブラウザはクレデンシャルを明らかに記憶しており、あなたが送信したものを上書きします!

これを把握しようと3時間くらい過ごしただけです。