Skip to content

Commit b14300d

Browse files
committed
Add more verbose logging to MailAuthBackend to debug login issues
1 parent e9ec853 commit b14300d

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

mailauth/backends.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
import logging
2+
13
from django.conf import settings
2-
from django.contrib.auth import get_user_model
34
from django.contrib.auth.backends import ModelBackend
4-
from django.core.signing import BadSignature
5+
from django.core.signing import BadSignature, SignatureExpired
56
from django.urls import reverse
67

78
from . import signing
9+
from .signing import UserDoesNotExist
10+
11+
logger = logging.getLogger(__name__)
812

913

1014
class MailAuthBackend(ModelBackend):
@@ -16,8 +20,15 @@ def authenticate(self, request, token=None):
1620

1721
try:
1822
user = self.signer.unsign(token, max_age=max_age, single_use=single_use)
19-
except (get_user_model().DoesNotExist, BadSignature):
20-
return
23+
except UserDoesNotExist:
24+
logger.warning(
25+
"Valid token for non-existing user. Maybe the user has been deleted.",
26+
exc_info=True,
27+
)
28+
except SignatureExpired:
29+
logger.warning("Token has expired.", exc_info=True)
30+
except BadSignature:
31+
logger.exception("Malicious or corrupted login token received.")
2132
else:
2233
if self.user_can_authenticate(user):
2334
return user

0 commit comments

Comments
 (0)