django.contrib.authLink to this heading
Dokumen ini menyediakan bahan acuan API untuk komponen-komponen dari sistem otentifikasi Django. Untuk rincian lebih pada penggunaan dari komponen-komponen ini atau bagaimana menyesuaikan autentifikasi dan otorisasi lihat authentication topic guide.
Model UserLink to this heading
- class models.UserLink to this definition
BidangLink to this heading
- class models.User
Obyek
Usermempunyai bidang berikut:- usernameLink to this definition
Diwajibkan. 150 karakter atau lebih sedikit. Nama pengguna dapat mengandung alfanumerik,
_,@,+,.dan-karakter.max_lengthharus cukup untuk banyak penggunaan kasus. Jika anda butuh panjang lebih, harap gunakan custom user model. Jika anda menggunakan MySQL dengan penyandianutf8mb4(dianjurkan untuk dukungan Unicode sesuai), tentukan kebanyakanmax_length=191karena MySQL hanya dapat membuat unik indeks dengan 192 karakter dalam kasus itu secara awalan.
- first_nameLink to this definition
Pilihan (
blank=True). 150 karakter atau sedikit.
- last_nameLink to this definition
Pilihan (
blank=True). 150 karakter atau sedikit.
- emailLink to this definition
Pilihan (
blank=True). Alamat surel.
- passwordLink to this definition
Diwajibkan. Sebuah campuran dari, dan metadata tentang, sandi. (Django tidak menyimpan sandi mentah.) Sandi mentah dapat berubah-ubah lama dan dapat mengandung karakter apapun. Lihat password documentation.
- groupsLink to this definition
Hubungan banyak-ke-banyak ke
Group
- user_permissionsLink to this definition
Hubungan banyak-ke-banyak ke
Permission
- is_staffLink to this definition
Boolean. Menandai apakah pengguna ini dapat mengakses situs admin.
- is_activeLink to this definition
Boolean. Menunjukkan apakah akun pengguna ini harus dianggap aktif. Kami menganjurkan bahwa anda menyetel bendera ini menjadi
Falsedaripada menghapus akun-akun; cara itu, jika aplikasi anda mempunyai foreign key apapun ke pengguna, foreign key tidak akan rusak.Ini tidak diperlukan mengendalikan apakah atau bukan pengguna dapat masuk. Backend autentifikasi tidak diwajibkan untuk memeriksa untuk tanda
is_activetetapi backend awalan (ModelBackend) danRemoteUserBackendmelakukannya. Anda dapat menggunakan class:~django.contrib.auth.backends.AllowAllUsersModelBackend atauAllowAllUsersRemoteUserBackendjika anda ingin mengizinkan pengguna tidak aktif untuk masuk. Dalam kasus ini, anda akan juga ingin menyesuaikanAuthenticationFormdigunakan olehLoginViewketika itu menolak pengguna tidak aktif. Waspada bahwa metode pemeriksaan-perizinan sepertihas_perm()dan autentifikasi dalam admin Django semua mengembalikanFalseuntuk pengguna tidak aktif.
- is_superuserLink to this definition
Boolean. Menunjuk bahwa pengguna ini mempunyai semua perizinan tanpa secara jelas menetapkan mereka.
- last_loginLink to this definition
Tanggalwaktu dari masuk terakhir pengguna.
- date_joinedLink to this definition
Sebuah datetime menunjukkan ketika akun telah dibuat. Adalah disetel ke tanggal/waktu saat ini secara awalan ketika akun dibuat.
AtributLink to this heading
- class models.User
- is_authenticatedLink to this definition
Atribut hanya-baca yang selalu
True(sebagai lawanAnonymousUser.is_authenticatedyang selaluFalse). Ini adalah cara untuk memberitahu jika pengguna telah diotentifikasi. Ini tidak berarti perizinan apapun dan tidak memeriksa jika pengguna adalah aktif atau mempunyai sesi sah. Meskipun secara biasa anda akan memeriksa atribut ini padarequest.useruntuk menemukan apakah itu telah dikumpulkan olehAuthenticationMiddleware(mewakili pengguna masuk saat ini), anda harus mengetahui atribut ini adalahTrueuntuk tiap instanceUser.
- is_anonymousLink to this definition
Atribut hanya-baca yaitu selalu
False. Ini adalah jalan untuk membedakan obyekUserandAnonymousUser. Umumnya, anda harus memilih menggunakanis_authenticatedpada atribut ini.
CaraLink to this heading
- class models.User
- get_username()Link to this definition
Mengembalikan nama pengguna untuk pengguna. Sejak model
Userdapat bertukar, anda haus menggunakan metode ini daripada mengacu atribut nama pengguna secara langsung.
- get_full_name()Link to this definition
Mengembalikan
first_nameditambahlast_name, dengan spasi diantaranya.
- get_short_name()Link to this definition
Mengembalikan
first_name.
- set_password(raw_password)Link to this definition
Setel sandi pengguna ke string mentah yang diberikan, merawat campuran sandi. Tidak menyimpan obyek
User.Ketika
raw_passwordadalahNone, sandi akan disetel menjadi sebuah sandi tidak berguna, seperti jikaset_unusable_password()digunakan.
- check_password(raw_password)Link to this definition
Mengembalikan
Truejika deretan karakter mentah yang diberikan adalah sandi benar untuk pengguna. (Ini merawat hash sandi dalam membuat perbandingan.)
- set_unusable_password()Link to this definition
Tandai pengguna sebagai tidak mempunyai sandi tidak disetel. Ini tidak sama seperti memiliki string kosong untuk sebuah sandi.
check_password()untuk pengguna ini tidak akan pernah mengembalikanTrue. Tidak menyimpan obyekUser.Anda mungkin butuh ini jika otentifikasi untuk aplikasi anda memakan tempat terhadap sumber luar yang ada seperti pelipat LDAP.
- has_usable_password()Link to this definition
Mengembalikan
Falsejikaset_unusable_password()telah dipanggil untuk pengguna ini.
- get_user_permissions(obj=None)Link to this definition
Mengembalikan sekumpulan string perizinan yang pengguna miliki secara langsung.
Jika
objdilewatkan, hanya mengembalikan perizinan pengguna untuk objek khusus ini.
- get_group_permissions(obj=None)Link to this definition
Mengembalikan deretan karakter kumpulan perizinan yang pengguna punyai, melalui kelompok mreka.
Jika
objdiloloskan, hanya mengembalikan perizinan kelompok untuk obyek tertentu ini.
- get_all_permissions(obj=None)Link to this definition
Mengembalikan sekumpulan deretan karakter perizinan yang pengguna punyai, kedua melalui perizinan kelompok dan pengguna.
Jika
objdiloloskan. hanya mengembalikan perizinan untuk obyek tertentu ini.
- has_perm(perm, obj=None)Link to this definition
Returns
Trueif the user has the specified permission, where perm is in the format"<app label>.<permission codename>". (see documentation on permissions). If the user is inactive, this method will always returnFalse. For an active superuser, this method will always returnTrue.Jika
objdiloloskan, metode ini tidak akan memeriksa untuk sebuah perizinan untuk model, tetapi untuk obyek tertentu ini.
- has_perms(perm_list, obj=None)Link to this definition
Returns
Trueif the user has each of the specified permissions, where each perm is in the format"<app label>.<permission codename>". If the user is inactive, this method will always returnFalse. For an active superuser, this method will always returnTrue.Jika
objdiloloskan, metode ini tidak akan memeriksa untuk perizinan-perizinan untuk model, tetapi untuk obyek tertentu.
- has_module_perms(package_name)Link to this definition
Returns
Trueif the user has any permissions in the given package (the Django app label). If the user is inactive, this method will always returnFalse. For an active superuser, this method will always returnTrue.
- email_user(subject, message, from_email=None, **kwargs)Link to this definition
Mengirim sebuah surel ke pengguna. Jika
from_emailadalahNone, Django menggunakanDEFAULT_FROM_EMAIL.**kwargsapapun dilewatkan ke panggilansend_mail()pokok
Pengelola metodeLink to this heading
- class models.UserManagerLink to this definition
Model
Usermempunyai pengelola penyesuaian yang mempunyai metode pembantu berikut (sebagai tambahan pada metode disediakan olehBaseUserManager):- create_user(username, email=None, password=None, **extra_fields)Link to this definition
Buat, simpan dan mengembalikan
User.usernamedanpassworddisetel sesuai yang diberikan. Bagian ranah dariemailadalah otomatis mengubah ke huruf kecil, dan mengembalikan obyekUserakan menyetelis_activekeTrue.Jika tidak ada sandi disediakan,
set_unusable_password()akan dipanggil.Argumen kata kunci
extra_fieldsdilewatkan melalui metodeUser’s__init__untuk mengizinkan mengatur bidang yang berubah-ubah pada custom user model.Lihat Membuat pengguna sebagai contoh penggunaan.
- create_superuser(username, email=None, password=None, **extra_fields)Link to this definition
Sama seperti
create_user(), but setsis_staffdanis_superusermenjadiTrue.
- with_perm(perm, is_active=True, include_superusers=True, backend=None, obj=None)Link to this definition
Returns users that have the given permission
permeither in the"<app label>.<permission codename>"format or as aPermissioninstance. Returns an empty queryset if no users who have thepermfound.If
is_activeisTrue(default), returns only active users, or ifFalse, returns only inactive users. UseNoneto return all users irrespective of active state.Jika
include_superusersadalahTrue(awalan), hasil akan menyertakan pengguna super.If
backendis passed in and it's defined inAUTHENTICATION_BACKENDS, then this method will use it. Otherwise, it will use thebackendinAUTHENTICATION_BACKENDS, if there is only one, or raise an exception.
Obyek AnonymousUserLink to this heading
- class models.AnonymousUserLink to this definition
django.contrib.auth.models.AnonymousUseradalah kelas yang menerapkan antarmukadjango.contrib.auth.models.User, dengan perbedaan ini:id selalu
None.usernameadalah selalu string kosong.get_username()selalu mengembalikan deretan kalimat kosong.is_anonymousadalahTruedaripadaFalse.is_authenticatedadalahFalsedaripadaTrue.is_staffdanis_superuseradalah selaluFalse.is_activeadalah selaluFalse.groupsdanuser_permissionsadalah selalu kosong.set_password(),check_password(),save()dandelete()memunculkanNotImplementedError.
Dalam penerapannya, anda mungkin tidak butuh menggunakan obyek AnonymousUser anda sendiri, tetapi mereka digunakan oleh permintaan Jaringan, seperti yang dijelaskan di bagian selanjutnya.
Model PermissionLink to this heading
- class models.PermissionLink to this definition
BidangLink to this heading
Obyek Permission mempunyai bidang berikut:
- class models.Permission
- nameLink to this definition
Dibutuhkan. 255 karakter atau sedikit. Contoh:
'Can vote'.
- content_typeLink to this definition
Dibutuhkan. Mengacu ke tabel basisdata
django_content_type, yang mengandung sebuah rekaman untuk setiap model terpasang.
- codenameLink to this definition
Dibutuhkan. 100 karakter atau sedikit. Contoh:
'can_vote'.
CaraLink to this heading
Obyek Permission mempunyai standar cara akses-data seperti lainnya Django model.
Model GroupLink to this heading
- class models.GroupLink to this definition
BidangLink to this heading
Obyek Group mempunyai bidang berikut:
- class models.Group
- nameLink to this definition
Dibutuhkan. 150 karakter atau lebih sedikit. Karakter apapun diizinkan. Contoh:
'Awesome Users'.
- permissionsLink to this definition
Bidang banyak-ke-banyak ke
Permission:group.permissions.set([permission_list]) group.permissions.add(permission, permission, ...) group.permissions.remove(permission, permission, ...) group.permissions.clear()
PengesahLink to this heading
- class validators.ASCIIUsernameValidatorLink to this definition
Sebuah bidang pengesah mengizinkan hanya huruf ASCII dan angka, sebagai tambahan pada
@,.,+,-, dan_.
- class validators.UnicodeUsernameValidatorLink to this definition
Sebuah bidang pengesah mengizinkan krakter Unicode, sebagai tambahan pada
@,.,+,-, dan_. Pengesah awalan untukUser.username.
Sinyal masuk dan keluarLink to this heading
Kerangka kerja autentifikasi menggunakan signals berikut yang dapat digunakan untuk pemberitahuan ketika pengguna masuk atau keluar.
- user_logged_in()Link to this definition
Terkirim ketika pengguna berhasil masuk.
Argumen dikirim dengan dinyal ini:
senderKelas pengguna yang baru masuk.
requestInstance
HttpRequestsaat ini.userInstance pengguna yang baru masuk.
- user_logged_out()Link to this definition
Dikirim ketika metode keluar dipanggil.
senderSeperti diatas: kelas dari pengguna yang baru keluar atau
Nonejika pengguna tidak terautentifikasi.requestInstance
HttpRequestsaat ini.userAntarmuka pengguna yang baru keluar atau
Nonejika pengguna tidak terautentifikasi.
- user_login_failed()Link to this definition
Terkirim ketika pengguna gagal berhasil masuk
senderNama modul digunakan untuk pengecekan keaslian.
credentialsSebuah kamus dari argumen kata kunci mengandung mandat pengguna yang dilewatkan ke
authenticate()atau backend autentifikasi penyesuaian anda. Mandat mencocokkan sekumpulan dari pola 'sensitive', (termasuk sandi) tidak akan dikirim dalam kejelasan sebagai bagian dari sinyal.requestObyek
HttpRequest, jika satu telah disediakan padaauthenticate().
Backend pembuktian keaslianLink to this heading
Bagian ini merinci backend autentifikasi yang datang dengan Django. Untuk informasi pada bagaimana menggunakan mereka dan bagaimana menulis backend autentifikasi anda sendiri, lihat Other authentication sources section 1 of the User authentication guide 2.
Tersedia backend autentifikasiLink to this heading
Backend berikut tersedia di django.contrib.auth.backends:
- class BaseBackendLink to this definition
A base class that provides default implementations for all required methods. By default, it will reject any user and provide no permissions.
- get_user_permissions(user_obj, obj=None)Link to this definition
Mengembalikan set kosong.
- get_group_permissions(user_obj, obj=None)Link to this definition
Mengembalikan set kosong.
- get_all_permissions(user_obj, obj=None)Link to this definition
Uses
get_user_permissions()andget_group_permissions()to get the set of permission strings theuser_objhas.
- has_perm(user_obj, perm, obj=None)Link to this definition
Uses
get_all_permissions()to check ifuser_objhas the permission stringperm.
- class ModelBackendLink to this definition
Ini adalah backend autentifikasi awalan digunakan oleh Django. Itu mengautentifikasi menggunakan mandat terdiri dari sebuah penciri pengguna dan sandi. Untuk model user Django, penciri pengguna adalah nama pengguna, untuk model user penyesuaian itu adalah bidang ditentukan oleh USERNAME_FIELD (lihat Customizing Users and authentication 1).
Itu juga menangangi model perizinan awalan seperti ditentukan untuk
UserdanPermissionsMixin.has_perm(),get_all_permissions(),get_user_permissions(), danget_group_permissions()mengizinkan sebuah obyek untuk dilewatkan sebagai sebuah parameter untuk perizinan khusus-obyek, tetapi backend ini tidak menerapkan mereka selain dari mengembalikan sebuah kumpulan kosong dari perizinan jikaobj is not None.with_perm()also allows an object to be passed as a parameter, but unlike others methods it returns an empty queryset ifobj is not None.- authenticate(request, username=None, password=None, **kwargs)Link to this definition
Mencoba untuk mengautentifikasi
usernamedenganpassworddengan memanggilUser.check_password. Jika tidak adausernamedisediakan, itu mencoba mengambil sebuah nama pengguna darikwargsmenggunakan kunciCustomUser.USERNAME_FIELD. Mengembalikan sebuah pengguna terautentifikasi atauNone.requestadalah sebuahHttpRequestdan mungkin berupaNonejika itu tidak disediakan padaauthenticate()(yang melewatkan itu ke backend).
- get_user_permissions(user_obj, obj=None)Link to this definition
Mengembalikan kumpulan dari string perizinan
user_objmiliki dari perizinan pengguna mereka sendiri. Mengembalikan sebuah kumpulan kosong jikais_anonymousatauis_activeadalahFalse.
- get_group_permissions(user_obj, obj=None)Link to this definition
Mengembalikan sekumpulan perizinan string
user_objmiliki dari perizinan dari kelompok mereka miliki. Mengembalikan sebuah kumpulan kosong jikais_anonymousatauis_activeadalahFalse.
- get_all_permissions(user_obj, obj=None)Link to this definition
Mengembalikan kumpulan dari string perizinan
user_objmiliki, termasuk kedua perizinan pengguna dan perizinan kelompok. Mengembalikan sebuah kumpulan kosong jikais_anonymousatauis_activeadalahFalse.
- has_perm(user_obj, perm, obj=None)Link to this definition
Gunakan
get_all_permissions()untuk memeriksa jikauser_objmempunyai string perizinanperm. MengembalikanFalsejika pengguna tidakis_active.
- has_module_perms(user_obj, app_label)Link to this definition
Mengembalikan apakah
user_objmempunyai perizinan apapun padaapp_labelaplikasi.
- user_can_authenticate()Link to this definition
Mengembalikan apakah pengguna diizinkan mengautentifikasi. Untuk mencocokkan perilaku dari
AuthenticationFormyangprohibits inactive users from logging in, metode ini mengembalikanFalseuntuk pengguna denganis_active=False. Penyesuaian model user yang tidak mempunyai sebuah bidangis_activediizinkan.
- with_perm(perm, is_active=True, include_superusers=True, obj=None)Link to this definition
Returns all active users who have the permission
permeither in the form of"<app label>.<permission codename>"or aPermissioninstance. Returns an empty queryset if no users who have thepermfound.If
is_activeisTrue(default), returns only active users, or ifFalse, returns only inactive users. UseNoneto return all users irrespective of active state.Jika
include_superusersadalahTrue(awalan), hasil akan menyertakan pengguna super.
- class AllowAllUsersModelBackendLink to this definition
Sama seperti
ModelBackendkecuali bahwa itu menolak pengguna tidak aktif karenauser_can_authenticate()selalu mengembalikanTrue.Ketika menggunakan backend, anda akan ingin menyesuaikan
AuthenticationFormdigunakan oleh tampilanLoginView()dengan menimpa metodeconfirm_login_allowed()ketika itu menolak pengguna tidak aktif.
- class RemoteUserBackendLink to this definition
Gunakan backend ini untuk mengambil keuntungan dari autentifikasi external-to-Django-handled. Itu mengautentifikasi menggunakan nama pengguna dilewatkan dalam
request.META['REMOTE_USER']. Lihat dokumentasi Authenticating against REMOTE_USER 1.Jika anda butuh lebih kendali, anda dapat membuat backend autentifikasi sendiri yang mewarisi dari kelas ini dan menimpa atribut ini atau metode:
- create_unknown_userLink to this definition
TrueatauFalse. Menentukan apakah atau tidak obyek pengguna dibuat jika belum di basisdata Awalan menjadiTrue.
- authenticate(request, remote_user)Link to this definition
The username passed as
remote_useris considered trusted. This method returns the user object with the given username, creating a new user object ifcreate_unknown_userisTrue.Mengembalikan
Nonejikacreate_unknown_useradalahFalsedan obyekUserdengan nama pengguna yang diberikan tidak ditemukan dalam basisdata.requestadalah sebuahHttpRequestdan mungkin berupaNonejika itu tidak disediakan padaauthenticate()(yang melewatkan itu ke backend).
- clean_username(username)Link to this definition
Melakukan pembersihan apapun pada
username(misalnya melucuti informasi LDAP DN) sebelum menggunakan itu untuk mendapatkan atau membuat sebuah obyek pengguna. Mengembalikan nama pengguna dibersihkan.
- configure_user(request, user)Link to this definition
Konfigurasi pengguna dibuat terbaru. Metode ini dipanggil segera setelah seorang pengguna baru dibuat, dan dapat digunakan untuk melakukan tindakan penyetelah penyesuaian, seperti mengatur kelompok pengguna berdasarkan pada atribut-atribut dalam sebuah direktori LDAP. Mengembalikan obyek pengguna.
requestadalah sebuahHttpRequestdan mungkin berupaNonejika itu tidak disediakan padaauthenticate()(yang melewatkan itu ke backend).
- user_can_authenticate()Link to this definition
Mengembalikan apakah pengguna diizinkan untuk autentifikasi. Metode ini mengembalikan
Falseuntuk pengguna denganis_active=False. Penyesuaian model user yang tidak mempunyai sebuah bidangis_activeadalah diizinkan.
- class AllowAllUsersRemoteUserBackendLink to this definition
Sama seperti
RemoteUserBackendkecuali bahwa itu menolak pengguna tidak aktif karenauser_can_authenticate()selalu mengembalikanTrue.
Fungsi-fungsi kegunaanLink to this heading
- get_user(request)Link to this definition
Mengembalikan instance model user terhubung dengan sesi
requestdiberikanItu memeriksa jika backend autentifikasi disimpan dalam sesi adalah hadir dalam
AUTHENTICATION_BACKENDS. Jika demikian, itu menggunakan metodeget_user()backend untuk mengambil instance model user dan kemudian membuktikan sesi dengan memanggil metodeget_session_auth_hash()model user.Mengembalikan sebuah instance dari
AnonymousUserjika backend autentifikasi disimpan dalam sesi tidak lagi dalamAUTHENTICATION_BACKENDS, jika seorang pengguna tidak dikembalikan oleh metodeget_user()backend, atau jika campuran autentifikasi sesi tidak disahkan.