1

ちなみにRails3を使っています。

devise を使用する rails アプリと同じスタックで、devise の「warden」を使用してラック アプリを認証するにはどうすればよいですか?

私の問題は、これを呼び出すときです:

request.env['warden'] # nil :(

ラック スタック上の他のアプリケーションから nil を取得します。

config.ru を介して Rails アプリに dav4rack (webdav) を統合しました。Railsアプリでの認証にdeviseを使用しています。

カスタム dav4rack リソース request.env['warden'] から "warden" にアクセスしようとすると、 nil が返されます。warden を使用して dav4rack リソースで認証するにはどうすればよいですか?

私が使用する config.ru の例:

http://pastie.org/1240732

4

1 に答える 1

0

あなたの config.ru では、あなたのスタックは warden を使用していません。

「/」パスへのリクエストを確認すると、すぐに config.ru で Rack アプリケーションを使用します。warden middlkeware は、Rails アプリケーションに追加されます。したがって、ラック アプリケーションが他のラック ミドルウェアを呼び出すように、ワーデン情報を取得することはできません。

ミドルウェア ワーデンの後に Rack アプリケーションを定義する必要があります。Warden Middleware がなければ、利用可能な Warden 機能がないためです。

于 2010-10-22T15:34:17.463 に答える