認証モジュール
概要:
サイトの開発、サイトを設計し、ユーザーのシステムに実装されるはずです。この時点で、私たちは、自分のログイン、認証を実装ログオフ、自分のパスワードを変更し、その組み込みのユーザ認証システムの認証をジャンゴする必要があります。
1 から django.contribのインポート認証
認証方法:
認証する()
現在のユーザ認証
1人のユーザー=認証(ユーザー名= ' SB '、パスワード= ' 123456 ')
ログイン(HttpRequestの、ユーザー)
この関数は、HttpRequestを対象と認定され、ユーザーオブジェクトを受け取ります。
この機能は、ユーザーのログイン機能を実装しています。本質的には、後端部にユーザーのセッション関連のデータを生成します。
1 から django.contrib.auth インポート認証、ログイン 2 3 DEF my_view(リクエスト): 4 名= request.POST [ ' ユーザ名' ] 5 パスワード= request.POST [ ' パスワード' ] 6 USER_OBJ =認証(ユーザ名=名、パスワード= パスワード) 7 の場合USER_OBJ: 8 ログイン(リクエスト、USER_OBJ) 9つの #は成功のページにリダイレクトします。 10 ... 11 他: 12 #「無効なログイン」エラーメッセージを返します。 13 ...
注意:ちょうどログイン(リクエスト、USER_OBJ)を使用した後、ユーザーオブジェクトを取得することができるからrequest.userは現在ログオンしています。それ以外の場合からrequest.user GETは、匿名ユーザーオブジェクト(AnonymousUserオブジェクト)です。
ログアウト(リクエスト)
この関数は、HttpRequestのオブジェクト、ノーリターン値をとります。
関数が呼び出されると、現在の要求は、すべてのセッション情報をクリアします。ユーザーがログインしていない場合であっても、また文句はありません。この機能を使用しています。
1 から django.contrib.auth インポートログアウト 2 3 デフ:logout_view(リクエスト) 4 ログアウト(リクエスト) 5 位成功ページにリダイレクト。
is_authenticated()
これは、現在の要求が認証されているか否かを判定する
1 DEF my_view(リクエスト): 2 場合 ではない:()request.user.is_authenticated 3 リターンリダイレクト(' %sの次=%S?'%(はsettings.LOGIN_URL、request.path))を
login_requierd()
認証は、チェックにビューを追加するために迅速なログインのための装飾的なツールを提供してくれます
1 から django.contrib.auth.decoratorsがインポートlogin_required 2 3 @login_required 4 デフmy_view(要求): 5 ...
ユーザーがログインしていない場合は、DjangoのデフォルトのログインURLにジャンプ「/アカウント/ログイン/」と(成功着陸した後、パスにリダイレクトされます)絶対パスにアクセスするには、現在のURLを渡します。
あなたは、ログインURLをカスタマイズしたい場合は、settings.pyファイルにLOGIN_URLによって変更する必要があります。
ユーザーを作成()
django.contrib.auth.models インポートするユーザ のユーザ = User.objects.create_user(ユーザ名= ' 用户名'、パスワードを= ' 密码'、電子メール= ' 邮箱'、...)
create_superuser()
django.contrib.auth.models インポートユーザー USER_OBJ = User.objects.create_superuser(ユーザ名= ' ユーザ名'、パスワード= ' パスワード'、Eメール= ' メールを'、...)
check_password(raw_password)
パスワード認証のオファーかどうかを確認する正しい方法は、現在のリクエストのユーザーのパスワードを提供する必要があります。
パスワードが正しいリターン真、そうでなければFalseです。
set_password(raw_password)
AUTHによって提供されたパスワードを変更する方法は、パラメータとして設定される新しいパスワードを受け取りました。
注意:ユーザーオブジェクトの保存メソッドを呼び出してください設定した後!!!
1 user_obj.set_password('123456 ' ) 2 user_obj.save()
カスタムAUTH_USERテーブル
1 から django.contrib.auth.modelsはインポートAbstractUser 2 クラス:のUserInfo(AbstractUser) 3 "" " 4 用户信息表 5 """ 6 NID = models.AutoField(PRIMARY_KEY = TRUE) 7 電話機= models.CharField(MAX_LENGTH = 11、ヌル=真、ユニーク= TRUE) 8 9 DEF __str__ (自己): 10 戻り self.username
構成設定で
1つの #は、DjangoはUserテーブルが付属して引用し、あなたは継承が使用するときに設定する必要が 2 AUTH_USER_MODEL = 「app01.UserInfoを」
カスタムまあ、もちろん私たちはテーブルを使用することができます
平均的なユーザー:
1 UserInfo.objects.create_user(NID = 1、パスワード= 123456)
スーパーバイザー:
1 UserInfo.objects.create_superuser(NID = 1、パスワード= 123456)
注意:
私たちが使用するテーブルに新しい認証システムを指定すると、我々は、データベース内のテーブルを再作成する必要がありますが、テーブルAUTH_USER元のデフォルトを継続して使用することはできません。