5

私はRails3を使用してアプリを構築する初期段階にあります。ユーザー認証は、標準とほぼ同じようにセットアップしたAuthlogicを利用しており(ドキュメントの例による)、すべてがローカルで期待どおりに機能しています。

Centos 5.4 / NginX / Passengerのクリーンサーバーインストールにアプリをデプロイしたところです。これにより、スタッフはログインしてコンテンツなどを入力できるようになります。ただし、これが一般に公開されるまでには長い道のりがあるため、サイト全体を別のレベルの認証の背後に保持するためのNginXの基本認証モジュール。

残念ながら、Authlogicの認証とNginXの基本認証は互いに競合しているようです。基本認証がオンの場合、Authlogicでログインすることはできませんが、基本認証を無効にすると、Authlogicは期待どおりに機能します。

どのコードが関連するのか本当にわからないので、コードを投稿していません。これは既知の問題であるかどうか疑問に思います。問題を回避するために構成に変更を加えることができますか?

4

2 に答える 2

13

私は自分の質問に答えることができます(完全に間違った場所を数時間調べた後)。の良い読み物Authlogic::Session::Configはトリックをしました。

class UserSession < Authlogic::Session::Base
  allow_http_basic_auth false
end
于 2010-05-17T20:52:07.327 に答える
1

私はまだRails3を試していなかったので、私の答えはもっと一般的なものになります。そして、私はNginXの基本認証モジュールを知りません。

  1. チームがローカルに接続されている場合は、ローカルネットワークからのみアクセス可能なサーバーを作成できます。
  2. インターネット経由でアクセスする必要がある場合は、VPNの背後に隠すことができます。
  3. ローカルIPを介してのみサイトへのアクセスを設定し、それを必要とするすべての人にsshアクセスを与えることができます。sshを介してsocksプロキシを作成するのは簡単です(Linuxの場合:ssh -D 8080 user@yourserver.com;ここで8080はポート番号です。ブラウザでsocksプロキシを設定すると、yoursever.com:3000をランチできます)。
  4. NginXでは、許可されたIPを設定し、他のIPを拒否できるので、アクセス制限にも使用できると思います。
  5. また、一時的にApplicationController before_filter :require_login:)に追加できるため、ログインページのみが世界中で利用できます。

それが役に立てば幸い!

于 2010-05-17T18:05:34.127 に答える