設定に関してはまず、
ジャンゴ:設定さAUTHENTICATION_BACKENDS
安らか:設定さDEFAULT_AUTHENTICATION_CLASSES
REST_FRAMEWORK = { ' DEFAULT_AUTHENTICATION_CLASSES ' :[ ' rest_framework.authentication.BasicAuthentication ' 、 ' rest_framework.authentication.SessionAuthentication ' 、 ' rest_framework.authentication.TokenAuthentication ' 、 ' rest_framework_simplejwt.authentication.JWTAuthentication ' 、 ]、 ' DEFAULT_PAGINATION_CLASS ':' rest_framework.pagination.PageNumberPagination ' 、 ' PAGE_SIZE ':2 } AUTHENTICATION_BACKENDS = ( #新しい ' rest_framework.authentication.TokenAuthentication ' 、 #デフォルトModelBackend ' django.contrib.auth.backends.ModelBackend ' 、 )
認証を呼び出すときに二人は、Djangoの?
とき1.django、ログインビュー、ユーザー認証、コールdjango.contrib.auth.authenticate。
デフlogin_custom(リクエスト): もし request.method == ' POST ' : #フォームのインスタンスを作成し、要求からデータを移入: フォーム= myAuthenticationForm(request.POST) #のそれが有効なのかどうかのチェック: もしform.is_valid(): ユーザ名 = form.cleaned_data [ ' ユーザ名' ] パスワード = form.cleaned_data [ ' パスワード' ] ユーザー =認証(要求、ユーザ名=ユーザ名、パスワード= パスワード) 場合、ユーザはありません ありませんなし: ログイン(リクエスト、利用者) リターンリダイレクト(' ログイン:ホーム' ) それ以外: リターンレンダリング(リクエスト、' registration_my / login_custom.html '、{ ' フォーム':フォーム})
認証パラメータ:ユーザー名+パスワードであってもよいし、それはトークンであり、
戻り:.なしまたは設定AUTH_USER_MODEL(ないカスタムた場合、それはauth.userです)
あなたがdjango.contrib.auth.authenticateを呼び出さない場合は注意してください。だから、設定。AUTHENTICATION_BACKENDSアクセスなし、彼らは呼び出されません。
3.安らかな時にクラスDEFAULT_AUTHENTICATION_CLASSESの定義を呼び出すには?
とき2.restful、ログインビュー、ユーザー認証、コールdjango.contrib.auth.authenticate。
4.2一般的な設定パラメータ
DEFAULT_AUTHENTICATION_CLASSESは、AUTHENTICATION_BACKENDSは複数のクラスをカスタマイズすることができ、デフォルトのフレームがあり、あなたも自分自身をカスタマイズすることができます。
別のリターン・パラメータ、同じ呼び出しメカニズム。なし、ユーザー、トークン。