2 votes

Django, surcharge de "is_authenticated()" lorsque nous avons l'email au lieu du nom d'utilisateur

J'utilise le django-email-as-username pour utiliser l'email plutôt que le nom d'utilisateur pour l'authentification, et cela fonctionne comme un charme.

Maintenant, dans voir Je veux appeler

if request.user.is_authenticated()

mais cette méthode ne fait qu'authentifier les utilisateurs sur la base de (nom d'utilisateur+mot de passe) et non de (email+mot de passe). Comment dois-je gérer cela ?

Une suggestion ?

3voto

Secator Points 9827

Dans Django, le is_authenticated() retourne toujours True para User et renvoie toujours False para AnonymousUser instances. Cela n'a rien à voir avec le nom d'utilisateur, le mot de passe, l'adresse e-mail et le mot de passe. django-email-as-username ne modifie pas ce comportement.

Voir la page de Django code source :

# In User class line 279
def is_authenticated(self):
    """
    Always return True. This is a way to tell if the user has been
    authenticated in templates.
    """
    return True

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X