1

プロジェクトで認証と承認に oauth を使用しようとしています。このプロジェクトは、クライアント アプリケーションによって消費されるミドルウェア/API に関するものであるため、クライアント資格情報の付与タイプを使用したいと考えています。対応する client_id と client_secret を 1 つ作成しました。トークンの生成は機能していますが、API エンドポイントに対して生成されたトークンを使用してリクエストを実行しようとすると、django によってアカウント/ログイン ページに転送されます。

                    <td>http://127.0.0.1:8000/accounts/login/?next=/api/mp/</td>

私の設定は次のとおりです。

MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'oauth2_provider.middleware.OAuth2TokenMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',]

AUTHENTICATION_BACKENDS = (
'oauth2_provider.backends.OAuth2Backend',)

そして、これは私のビューでの唯一の機能のトップです:

@csrf_exempt @require_http_methods(['POST', 'GET']) @login_required() def getUserContext(request):

この追加の認証がどこから来ているのか、またはresp. ビューにoauthのみを使用するようにdjangoに指示する方法。

4

1 に答える 1

1

質問を投稿した後、答えが非常に短いことがわかりました。ただし、 @login_required を使用する必要があると述べたハウツーに従っていました。ただし、使用する正しいデコレータは次のとおりです。

@protected_resource()
于 2019-03-18T15:31:20.040 に答える