まず、認証モジュールは何ですか
認証モジュールは、ユーザデータを格納するための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 」