Djangoの認証コンポーネント

認証モジュール

概要:

  サイトの開発、サイトを設計し、ユーザーのシステムに実装されるはずです。この時点で、私たちは、自分のログイン、認証を実装ログオフ、自分のパスワードを変更し、その組み込みのユーザ認証システムの認証をジャンゴする必要があります。

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元のデフォルトを継続して使用することはできません。

 

おすすめ

転載: www.cnblogs.com/Alexephor/p/11310486.html