2009-08-27 6 views
1

djangoのlogin_required、HTTP基本認証、およびOAuthの3つの異なる認証メカニズムを使用して、単一のAPI呼び出しを公開しようとしています。私は3人すべてのためにデコレータを持っていますが、それらをすべてスムーズに動かす方法を考え出すことはできません。Django:ビューにmutilpleアクセスコントロールデコレータを適用

必要なロジックは、デコレータ/認証メカニズムのいずれかがユーザーの要求に対して有効な場合(基本的にはOR)、ビューへのアクセスを許可することです。しかし、単に3人のデコレータをすべて含めるだけであれば、ANDを介してリクエストを送信する前にすべて満足したいと思っています。

これを処理するにはどうすればよいですか?

答えて

3

私はあなたができるとは確信していません。ユーザーがログインしていないとします。login_requiredを使用すると、サーバーはログインフォームにリダイレクトされますが、基本認証を使用するとサーバーはWWW-Authenticate応答ヘッダーを持つ401エラーページを返します。あなたはどちらをやりたいのですか?私はそれがどのようになるかは分かりません。

+0

良い点...少し考えてみましょう。 – Parand

+0

私のAPIでは、セッションされたユーザーに対してHTTP基本認証とテストを許可しますが、ログインは必要ありません。私は失敗時にログインURLにリダイレクトせず、代わりに401エラーを返します。これにより、ログインしているユーザーはAPIをテストできますが、基本認証または認証が失敗した場合にブラウザ以外のアクセスで競合が発生することはありません。 –

関連する問題