Identity — Modèles¶
Les modèles du Identity Context gèrent les utilisateurs, la vérification d’email et les dispositifs OTP.
Module : src.module.identity.infrastructure.models
User¶
- class src.module.identity.infrastructure.models.User(AbstractUser)¶
Modèle utilisateur personnalisé avec email comme identifiant principal.
- id: UUIDField¶
Clé primaire UUID4.
- email: EmailField(unique=True)¶
Email de l’utilisateur (utilisé pour le login).
- first_name: CharField¶
- last_name: CharField¶
- is_active: BooleanField¶
- date_joined: DateTimeField¶
Le champ
usernamen’est pas utilisé pour l’authentification. L’email est leUSERNAME_FIELD.Configuration requise dans settings.py :
AUTH_USER_MODEL = 'identity.User'
UserManager¶
Module : src.module.identity.infrastructure.managers
- class src.module.identity.infrastructure.managers.UserManager(BaseUserManager)¶
Manager basé sur l’email (pas le username).
EmailVerification¶
- class src.module.identity.infrastructure.managers.EmailVerification(models.Model)¶
Token de vérification d’email.
- user: ForeignKey → User¶
- token: UUIDField(unique=True)¶
- is_verified: BooleanField¶
- created_at: DateTimeField¶
- expires_at: DateTimeField¶
Configurable via
EMAIL_VERIFICATION_TOKEN_VALIDITY_HOURS.
OTPDevice¶
- class src.module.identity.infrastructure.managers.OTPDevice(models.Model)¶
Dispositif OTP/2FA pour un utilisateur. Supporte 3 types :
email: Code envoyé par emailtotp: TOTP RFC 6238 (Google Authenticator, Authy)static: Codes de récupération à usage unique
- user: ForeignKey → User¶
- device_type: CharField¶
"email","totp","static"
- secret: CharField¶
Secret partagé (TOTP) ou liste de codes (static).
- is_confirmed: BooleanField¶
Trueune fois que l’utilisateur a vérifié le dispositif.
- is_active: BooleanField¶