django.contrib.authLink to this heading
Detta dokument tillhandahåller API-referensmaterial för komponenterna i Djangos autentiseringssystem. För mer information om användningen av dessa komponenter eller hur du anpassar autentisering och auktorisering, se autentisering ämnesguide.
User modellLink to this heading
- class models.UserLink to this definition
FältLink to this heading
- class models.User
User-objekt har följande fält:- usernameLink to this definition
Krävs. 150 tecken eller färre. Användarnamn kan innehålla alfanumeriska tecken,
_,@,+,.och-.Den maximala längden bör vara tillräcklig för många användningsfall. Om du behöver en längre längd, använd en custom user model.
- first_nameLink to this definition
Valfritt (
blank=True). 150 tecken eller färre.
- last_nameLink to this definition
Valfritt (
blank=True). 150 tecken eller färre.
- emailLink to this definition
Valfritt (
blank=True). E-post adress.
- passwordLink to this definition
Obligatoriskt. En hash av, och metadata om, lösenordet. (Django lagrar inte det råa lösenordet.) Råa lösenord kan vara godtyckligt långa och kan innehålla alla tecken. Metadata i detta fält kan markera lösenordet som oanvändbart. Se dokumentation om lösenord.
- groupsLink to this definition
Många-till-många-relation till
Group
- user_permissionsLink to this definition
Många-till-många-relation till
Permission
- is_staffLink to this definition
Boolesk. Tillåter att den här användaren får åtkomst till administratörsplatsen.
- is_activeLink to this definition
Boolesk. Markerar detta användarkonto som aktivt. Vi rekommenderar att du sätter den här flaggan till
Falseistället för att radera konton. På så sätt går inte de utländska nycklarna sönder om dina applikationer har några utländska nycklar till användare.Detta kontrollerar inte nödvändigtvis om användaren kan logga in eller inte. Autentiseringsbackends är inte skyldiga att kontrollera flaggan
is_activemen standardbackend (ModelBackend) ochRemoteUserBackendgör det. Du kan användaAllowAllUsersModelBackendellerAllowAllUsersRemoteUserBackendom du vill tillåta inaktiva användare att logga in. I det här fallet vill du också anpassaAuthenticationFormsom används avLoginVieweftersom den avvisar inaktiva användare. Tänk på att metoderna för behörighetskontroll somhas_perm()och autentiseringen i Django admin alla returnerarFalseför inaktiva användare.
- is_superuserLink to this definition
Booleansk. Behandlar den här användaren som om den har alla behörigheter utan att tilldela någon särskild behörighet till den.
- last_loginLink to this definition
En datatid för användarens senaste inloggning.
- date_joinedLink to this definition
Datum/tid då kontot skapades.
AttributLink to this heading
- class models.User
- is_authenticatedLink to this definition
Skrivskyddat attribut som alltid är
True(i motsats tillAnonymousUser.is_authenticatedsom alltid ärFalse). Det här är ett sätt att se om användaren har autentiserats. Det innebär inte några behörigheter och kontrollerar inte om användaren är aktiv eller har en giltig session. Även om du normalt kommer att kontrollera detta attribut pårequest.userför att ta reda på om det har fyllts i avAuthenticationMiddleware(som representerar den för närvarande inloggade användaren), bör du veta att detta attribut ärTrueför allaUser-instanser.
- is_anonymousLink to this definition
Skrivskyddat attribut som alltid är
False. Detta är ett sätt att skilja mellan objektenUserochAnonymousUser. Generellt sett bör du föredra att användais_authenticatedframför detta attribut.
MetoderLink to this heading
- class models.User
- get_username()Link to this definition
Returnerar användarnamnet för användaren. Eftersom
User-modellen kan bytas ut bör du använda den här metoden istället för att referera till användarnamnsattributet direkt.
- get_full_name()Link to this definition
Returnerar
first_namepluslast_name, med ett mellanslag emellan.
- get_short_name()Link to this definition
Returnerar
first_name.
- set_password(raw_password)Link to this definition
Ställer in användarens lösenord till den angivna råsträngen och tar hand om lösenordets hashing. Sparar inte
User-objektet.When the
raw_passwordisNone, the password will be set to an unusable password, as ifset_unusable_password()were used.
- check_password(raw_password)Link to this definition
- acheck_password(raw_password)Link to this definition
Asynkron version:
acheck_password()Returnerar
Trueom den angivna råsträngen är rätt lösenord för användaren. (Detta tar hand om lösenordets hashing vid jämförelsen.)
- set_unusable_password()Link to this definition
Marks the user as having no password set by updating the metadata in the
passwordfield. This isn’t the same as having a blank string for a password.check_password()for this user will never returnTrue. Doesn’t save theUserobject.Du kan behöva detta om autentiseringen för din applikation sker mot en befintlig extern källa, t.ex. en LDAP-katalog.
- has_usable_password()Link to this definition
Returns
Falseifset_unusable_password()has been called for this user.
- get_user_permissions(obj=None)Link to this definition
- aget_user_permissions(obj=None)Link to this definition
Asynkron version:
aget_user_permissions()Returnerar en uppsättning behörighetssträngar som användaren har direkt.
Om
objanges returneras endast användarrättigheterna för detta specifika objekt.
- get_group_permissions(obj=None)Link to this definition
- aget_group_permissions(obj=None)Link to this definition
Asynkron version:
aget_group_permissions()Returnerar en uppsättning behörighetssträngar som användaren har via sina grupper.
Om
objanges returneras endast gruppbehörigheterna för detta specifika objekt.
- get_all_permissions(obj=None)Link to this definition
- aget_all_permissions(obj=None)Link to this definition
Asynkron version:
aget_all_permissions()Returnerar en uppsättning behörighetssträngar som användaren har, både genom grupp- och användarbehörigheter.
Om
objanges returneras endast behörigheterna för detta specifika objekt.
- has_perm(perm, obj=None)Link to this definition
- ahas_perm(perm, obj=None)Link to this definition
Asynkron version:
ahas_perm()Returnerar
Trueom användaren har den angivna behörigheten, där perm är i formatet"<app label>.<permission codename>". (se dokumentation om permissions). Om användaren är inaktiv kommer denna metod alltid att returneraFalse. För en aktiv superanvändare kommer denna metod alltid att returneraTrue.Om
objskickas in kommer denna metod inte att söka efter en behörighet för modellen, utan för detta specifika objekt.
- has_perms(perm_list, obj=None)Link to this definition
- ahas_perms(perm_list, obj=None)Link to this definition
Asynkron version:
ahas_perms()Returnerar
Trueom användaren har var och en av de angivna behörigheterna, där varje behörighet är i formatet"<app label>.<permission codename>". Om användaren är inaktiv returnerar denna metod alltidFalse. För en aktiv superanvändare kommer denna metod alltid att returneraTrue.Om
objanges kommer den här metoden inte att kontrollera behörigheter för modellen, utan för det specifika objektet.
- has_module_perms(package_name)Link to this definition
- ahas_module_perms(package_name)Link to this definition
Asynkron version:
ahas_module_perms()Returnerar
Trueom användaren har några behörigheter i det angivna paketet (Django-appens etikett). Om användaren är inaktiv kommer denna metod alltid att returneraFalse. För en aktiv superanvändare kommer denna metod alltid att returneraTrue.
- email_user(subject, message, from_email=None, **kwargs)Link to this definition
Skickar ett e-postmeddelande till användaren. Om
from_emailärNoneanvänder DjangoDEFAULT_FROM_EMAIL. Alla**kwargsskickas till det underliggandesend_mail()-anropet.
Metoder för cheferLink to this heading
- class models.UserManagerLink to this definition
Modellen
Userhar en anpassad manager som har följande hjälpmetoder (utöver de metoder som tillhandahålls avBaseUserManager):- create_user(username, email=None, password=None, **extra_fields)Link to this definition
- acreate_user(username, email=None, password=None, **extra_fields)Link to this definition
Asynkron version:
acreate_user()Skapar, sparar och returnerar en
User.usernameochpasswordär inställda som angivet. Domändelen avemailkonverteras automatiskt till gemener, och det returneradeUser-objektet kommer att hais_activesatt tillTrue.If no password is provided,
set_unusable_password()will be called.Om ingen e-postadress anges kommer
emailatt sättas till en tom sträng.Nyckelordsargumenten
extra_fieldsskickas tillUser’s__init__metod för att tillåta inställning av godtyckliga fält på en custom user model.Se Skapa användare för exempel på användning.
- create_superuser(username, email=None, password=None, **extra_fields)Link to this definition
- acreate_superuser(username, email=None, password=None, **extra_fields)Link to this definition
Asynkron version:
acreate_superuser()Samma som
create_user(), men sätteris_staffochis_superusertillTrue.
- with_perm(perm, is_active=True, include_superusers=True, backend=None, obj=None)Link to this definition
Returnerar användare som har den givna behörigheten
permantingen i formatet"<app label>.<permission codename>"eller som enPermission-instans. Returnerar en tom frågeuppsättning om inga användare som harpermhittas.Om
is_activeärTrue(standard) returneras endast aktiva användare, eller omFalsereturneras endast inaktiva användare. AnvändNoneför att returnera alla användare oavsett aktivt tillstånd.Om
include_superusersärTrue(standard) kommer resultatet att inkludera superanvändare.Om
backendskickas in och det är definierat iAUTHENTICATION_BACKENDS, så kommer denna metod att använda det. Annars kommer den att användabackendiAUTHENTICATION_BACKENDS, om det bara finns en, eller skapa ett undantag.
objektet AnonymUserLink to this heading
- class models.AnonymousUserLink to this definition
django.contrib.auth.models.AnonymousUserär en klass som implementerar gränssnittetdjango.contrib.auth.models.User, med dessa skillnader:id är alltid
None.usernameär alltid en tom sträng.get_username()always returns the empty string.is_anonymousärTrueistället förFalse.is_authenticatedärFalseistället förTrue.is_staffochis_superuserär alltidFalse.is_activeär alltidFalse.groupsochuser_permissionsär alltid tomma.set_password(),check_password(),save()anddelete()raiseNotImplementedError.
I praktiken kommer du förmodligen inte att behöva använda AnonymousUser-objekt på egen hand, men de används av webbförfrågningar, vilket förklaras i nästa avsnitt.
Bemyndigande modellLink to this heading
- class models.PermissionLink to this definition
FältLink to this heading
Permission-objekt har följande fält:
- class models.Permission
- nameLink to this definition
Obligatoriskt. 255 tecken eller färre. Exempel:
'Kan rösta'.
- content_typeLink to this definition
Krävs. En främmande nyckel till modellen
ContentType.
- codenameLink to this definition
Krävs. 100 tecken eller färre. Exempel:
'can_vote'.
MetoderLink to this heading
Permission-objekt har standardmetoder för dataåtkomst som alla andra Django-modeller.
Grupp modellLink to this heading
- class models.GroupLink to this definition
FältLink to this heading
Group-objekt har följande fält:
- class models.Group
- nameLink to this definition
Krävs. 150 tecken eller färre. Alla tecken är tillåtna. Exempel:
'Fantastiska användare'.
- permissionsLink to this definition
Många-till-många-fält till
Permission:group.permissions.set([permission_list]) group.permissions.add(permission, permission, ...) group.permissions.remove(permission, permission, ...) group.permissions.clear()
ValiderareLink to this heading
- class validators.ASCIIUsernameValidatorLink to this definition
En fältvalidator som endast tillåter ASCII-bokstäver och siffror, förutom
@,.,+,-och_.
- class validators.UnicodeUsernameValidatorLink to this definition
En fältvalidator som tillåter Unicode-tecken, utöver
@,.,+,-och_. Standardvalideraren förUser.username.
Signaler för inloggning och utloggningLink to this heading
Auth-ramverket använder följande signals som kan användas för att meddela när en användare loggar in eller ut.
- user_logged_inLink to this definition
Skickas när en användare loggar in framgångsrikt.
Argument som skickas med denna signal:
- avsändare
Klassen för den användare som just loggade in.
begäranDen aktuella
HttpRequest-instansen.användareDen användarinstans som just loggade in.
- user_logged_outLink to this definition
Skickas när utloggningsmetoden anropas.
- avsändare
Som ovan: klassen för den användare som just loggade ut eller
Noneom användaren inte var autentiserad.begäranDen aktuella
HttpRequest-instansen.användareDen användarinstans som just loggade ut eller
Noneom användaren inte var autentiserad.
- user_login_failedLink to this definition
Skickas när användaren misslyckats med att logga in
- avsändare
Namnet på den modul som används för autentisering.
referenserA dictionary of keyword arguments containing the user credentials that were passed to
authenticate()or your own custom authentication backend. Credentials matching a set of ’sensitive’ patterns (including password) will not be sent in the clear as part of the signal.begäranObjektet
HttpRequest, om ett sådant tillhandahölls tillauthenticate().
Backend för autentiseringLink to this heading
Detta avsnitt beskriver de autentiseringsbackends som levereras med Django. För information om hur du använder dem och hur du skriver dina egna autentiseringsbackends, se Andra autentiseringskällor avsnitt i User authentication guide.
Tillgängliga backends för autentiseringLink to this heading
Följande backends finns tillgängliga i django.contrib.auth.backends:
- class BaseBackendLink to this definition
En basklass som tillhandahåller standardimplementationer för alla nödvändiga metoder. Som standard kommer den att avvisa alla användare och inte ge några behörigheter.
- get_user_permissions(user_obj, obj=None)Link to this definition
- aget_user_permissions(user_obj, obj=None)Link to this definition
Asynkron version:
aget_user_permissions()Returnerar en tom uppsättning.
- get_group_permissions(user_obj, obj=None)Link to this definition
- aget_group_permissions(user_obj, obj=None)Link to this definition
Asynkron version:
aget_group_permissions()Returnerar en tom uppsättning.
- get_all_permissions(user_obj, obj=None)Link to this definition
- aget_all_permissions(user_obj, obj=None)Link to this definition
Asynkron version:
aget_all_permissions()Använder
get_user_permissions()ochget_group_permissions()för att hämta den uppsättning behörighetssträngar somuser_objhar.
- has_perm(user_obj, perm, obj=None)Link to this definition
- ahas_perm(user_obj, perm, obj=None)Link to this definition
Asynkron version:
ahas_perm()Använder
get_all_permissions()för att kontrollera omuser_objhar behörighetssträngenperm.
- class ModelBackendLink to this definition
This is the default authentication backend used by Django. It authenticates using credentials consisting of a user identifier and password. For Django’s default user model, the user identifier is the username, for custom user models it is the field specified by USERNAME_FIELD (see Customizing Users and authentication).
Den hanterar också standardbehörighetsmodellen enligt definitionen för
UserochPermissionsMixin.has_perm(),get_all_permissions(),get_user_permissions(), ochget_group_permissions()tillåter att ett objekt skickas som en parameter för objektspecifika behörigheter, men denna backend implementerar dem inte annat än att returnera en tom uppsättning behörigheter omobj är inte None.with_perm()also allows an object to be passed as a parameter, but unlike other methods it returns an empty queryset ifobj is not None.- authenticate(request, username=None, password=None, **kwargs)Link to this definition
- aauthenticate(request, username=None, password=None, **kwargs)Link to this definition
Asynkron version:
aauthenticate()Försöker autentisera
usernamemedpasswordgenom att anropaUser.check_password. Om ingetusernameanges försöker den hämta ett användarnamn frånkwargsmed hjälp av nyckelnCustomUser.USERNAME_FIELD. Returnerar en autentiserad användare ellerNone.requestär enHttpRequestoch kan varaNoneom den inte tillhandahölls tillauthenticate()(som skickar den vidare till backend).
- get_user_permissions(user_obj, obj=None)Link to this definition
- aget_user_permissions(user_obj, obj=None)Link to this definition
Asynkron version:
aget_user_permissions()Returnerar den uppsättning behörighetssträngar som
user_objhar från sina egna användarbehörigheter. Returnerar en tom uppsättning omis_anonymouselleris_activeärFalse.
- get_group_permissions(user_obj, obj=None)Link to this definition
- aget_group_permissions(user_obj, obj=None)Link to this definition
Asynkron version:
aget_group_permissions()Returnerar den uppsättning behörighetssträngar som
user_objhar från behörigheterna för de grupper de tillhör. Returnerar en tom uppsättning omis_anonymouselleris_activeärFalse.
- get_all_permissions(user_obj, obj=None)Link to this definition
- aget_all_permissions(user_obj, obj=None)Link to this definition
Asynkron version:
aget_all_permissions()Returnerar den uppsättning behörighetssträngar som
user_objhar, inklusive både användar- och gruppbehörigheter. Returnerar en tom uppsättning omis_anonymouselleris_activeärFalse.
- has_perm(user_obj, perm, obj=None)Link to this definition
- ahas_perm(user_obj, perm, obj=None)Link to this definition
Asynkron version:
ahas_perm()Använder
get_all_permissions()för att kontrollera omuser_objhar behörighetssträngenperm. ReturnerarFalseom användaren inte äris_active.
- has_module_perms(user_obj, app_label)Link to this definition
- ahas_module_perms(user_obj, app_label)Link to this definition
Asynkron version:
ahas_module_perms()Returnerar om
user_objhar några behörigheter för appenapp_label.
- user_can_authenticate()Link to this definition
Returnerar om användaren tillåts att autentisera sig. För att matcha beteendet hos
AuthenticationFormsomförbjuder inaktiva användare från att logga in, returnerar denna metodFalseför användare medis_active=False. Anpassade användarmodeller som inte har ett fältis_activeär tillåtna.
- with_perm(perm, is_active=True, include_superusers=True, obj=None)Link to this definition
Returnerar alla aktiva användare som har behörigheten
permantingen i form av"<app label>.<permission codename>"eller enPermission-instans. Returnerar en tom frågeuppsättning om inga användare som harpermhittas.Om
is_activeärTrue(standard) returneras endast aktiva användare, eller omFalsereturneras endast inaktiva användare. AnvändNoneför att returnera alla användare oavsett aktivt tillstånd.Om
include_superusersärTrue(standard) kommer resultatet att inkludera superanvändare.
- class AllowAllUsersModelBackendLink to this definition
Samma som
ModelBackendförutom att den inte avvisar inaktiva användare eftersomuser_can_authenticate()alltid returnerarTrue.När du använder den här backend kommer du sannolikt att vilja anpassa
AuthenticationFormsom används avLoginViewgenom att åsidosättaconfirm_login_allowed()-metoden eftersom den avvisar inaktiva användare.
- class RemoteUserBackendLink to this definition
Use this backend to take advantage of external-to-Django-handled authentication. It authenticates using usernames passed in
request.META['REMOTE_USER']. See the Authenticating against REMOTE_USER documentation.Om du behöver mer kontroll kan du skapa din egen autentiseringsbackend som ärver från den här klassen och åsidosätta dessa attribut eller metoder:
- create_unknown_userLink to this definition
TrueellerFalse. Bestämmer om ett användarobjekt skapas eller inte om det inte redan finns i databasen Standardvärdet ärTrue.
- authenticate(request, remote_user)Link to this definition
- aauthenticate(request, remote_user)Link to this definition
Asynkron version:
aauthenticate()Det användarnamn som anges som
remote_useranses vara betrott. Denna metod returnerar användarobjektet med det angivna användarnamnet och skapar ett nytt användarobjekt omcreate_unknown_userärTrue.Returnerar
Noneomcreate_unknown_user`ärFalseoch ettUser-objekt med det angivna användarnamnet inte finns i databasen.requestär enHttpRequestoch kan varaNoneom den inte tillhandahölls tillauthenticate()(som skickar den vidare till backend).
- clean_username(username)Link to this definition
Utför eventuell rensning av
username(t.ex. borttagning av LDAP DN-information) innan det används för att hämta eller skapa ett användarobjekt. Returnerar det rensade användarnamnet.
- configure_user(request, user, created=True)Link to this definition
- aconfigure_user(request, user, created=True)Link to this definition
Asynkron version:
aconfigure_user()Konfigurerar användaren vid varje autentiseringsförsök. Den här metoden anropas omedelbart efter att användaren som autentiseras har hämtats eller skapats och kan användas för att utföra anpassade konfigurationsåtgärder, t.ex. att ange användarens grupper baserat på attribut i en LDAP-katalog. Returnerar användarobjektet. När hämtning eller skapande av en användare anropas från en synkron kontext anropas
configure_user,aconfigure_useranropas från asynkrona kontexter.Inställningen kan utföras antingen en gång när användaren skapas (
createdärTrue) eller på befintliga användare (createdärFalse) som ett sätt att synkronisera attribut mellan fjärrsystemet och det lokala systemet.requestär enHttpRequestoch kan varaNoneom den inte tillhandahölls tillauthenticate()(som skickar den vidare till backend).
- user_can_authenticate()Link to this definition
Returnerar om användaren får autentisera sig. Denna metod returnerar
Falseför användare medis_active=False. Anpassade användarmodeller som inte har ett fältis_activeär tillåtna.
- class AllowAllUsersRemoteUserBackendLink to this definition
Samma som
RemoteUserBackendförutom att den inte avvisar inaktiva användare eftersomuser_can_authenticatealltid returnerarTrue.
VerktygsfunktionerLink to this heading
- get_user(request)Link to this definition
- aget_user(request)Link to this definition
Asynkron version:
aget_user()Returnerar den användarmodellinstans som är associerad med den givna
request-sessionen.Den kontrollerar om den autentiseringsbackend som lagrats i sessionen finns i
AUTHENTICATION_BACKENDS. Om så är fallet använder den backendets metodget_user()för att hämta användarmodellens instans och verifierar sedan sessionen genom att anropa användarmodellens metodget_session_auth_hash(). Om verifieringen misslyckas ochSECRET_KEY_FALLBACKStillhandahålls, verifieras sessionen mot varje reservnyckel medget_session_auth_fallback_hash().Returnerar en instans av
AnonymousUserom den autentiseringsbackend som lagras i sessionen inte längre finns iAUTHENTICATION_BACKENDS, om en användare inte returneras av backendetsget_user()-metod, eller om sessionens autentiseringshash inte valideras.