の認証Djangoのコンポーネント

まず、認証モジュールは何ですか

  認証モジュールは、ユーザデータを格納するためのDjango、AUTH_USERデフォルトのテーブルを搬送する加入者識別モジュールです。

第二に、使用

1.スーパーユーザを作成します。

  python3 manage.py createsuperuser

  、パスワードは、パスワードを確認(あなたが入力することはできません)、ユーザー名、電子メールを入力します(スーパーユーザに成功し作成していないすべて暗号化されたパスワードを手動で挿入しなければならないので、テーブルAUTH_USERにデータを挿入)

2.ユーザーを確認します

django.contrib インポート認証
 #1 ユーザー= models.User.objects.filter(名=名、PWD = PWD)(1次回):クエリと同等 
のユーザー= auth.authenticate(要求、ユーザ名=名、パスワード= PWD)   チェックがユーザーオブジェクトを返す場合、ユーザオブジェクトが検証チェックかどうか、判定されます

3.ログイン

auth.login(リクエスト、ユーザー)
 #は、実際にデータセッションで書かれています

  ログインが成功したら、伝達関数ログイン(リクエスト、ユーザ)、後ビュークラス、要求オブジェクト内の関数、ユーザオブジェクトが存在し、ユーザオブジェクトが現在ログオンしている、ログインしていない場合は、からrequest.user = AnonymousUserであります匿名ユーザー。

4.ログオフ

auth.logout(リクエスト)
 内部:(request.session.flushを呼び出す)、ログイン状態を削除

ログイン認証デコレータ

django.contrib.auth.decorators インポートlogin_required 
@login_required(redirect_field_name = ' AWSL '、LOGIN_URL = ' /ログイン/ '#は、ローカルに設定さは##のredirect_field_nameすることができ:?、背後にあるキーの値を変更する
#のLOGIN_URLを:ログインしていない場合は、ジャンプページにアクセスしてください

(設定で)グローバルコンフィギュレーションすることができます
。#ログインしていない場合は、グローバルコンフィギュレーション、このルートスキップ 
LOGIN_URL = /ログイン/を

7.ユーザーを作成します。

django.contrib.auth.modelsがインポートユーザー 
 #はスーパーユーザと一般ユーザの作成作成することはできませんが、パスワードの暗号化は作成しない
#のユーザーを= User.objects.create(ユーザ名=名、パスワード= PWD)
は、スーパーユーザーを作成 
、ユーザーを= User.objects.create_superuser(ユーザ名=名、パスワード= PWD)
通常のユーザーの作成 
、ユーザー= User.objects.create_user(ユーザ名=名、パスワード= PWDを)

8.パスワードの確認

#は、最初のユーザ(ユーザがログインすることができ、あなたが今確認することができます)を取得 
request.user.check_password(PWD)を

9.パスワードの変更

user.set_password(PWD)
user.save() #   、)(saveを呼び出すようにしてくださいそれ以外の場合は、保存されていません

10.検証テスト

  検証済みの場合is_authenticated()、逆は真偽であります

11.その他の方法

  is_active:(ユーザーが、タイトルが存在する)サイトから禁止
  is_staff:サイト上でそこに管理者権限があります(管理者ログオンすることはできません)

12.ユーザの削除

  ORM削除

第三に、デフォルトのテーブルAUTH_USERを拡張

この方法の一つ:1つのテーブルとAUTH_USERの関連付けを行います

django.contrib.auth.models インポートユーザ
 クラスUserDetail(models.Model):
    電話番号 = models.CharField(MAX_LENGTH = 32 テーブルと相関1 AUTH_USER 
    モデルテーブルは、外部から導入された場合、付加されていません引用
    #を引用し、ちょうど現在のモデルを見ている場合 
    、ユーザー= models.OneToOneField(=ユーザーへ)

方法2:AbstractUser継承

django.contrib.auth.models インポートAbstractUserの
 クラス:のUserInfo(AbstractUser)
    フィールドがあり、ユーザ名、パスワードAUTH_USERテーブルまで 
    電話= models.CharField(MAX_LENGTH = 32 
    セックス = models.BooleanField() 
設定で配置されたが認証コンポーネントで、何AUTH_USERこのテーブルが存在しないため、データベースの移行を行うことはUserInfoテーブルのある = AUTH_USER_MODEL app01.UserInfo

 

おすすめ

転載: www.cnblogs.com/moonzier/p/11266581.html