Skip to content

Commit cbe0594

Browse files
authored
Merge pull request #4 from nishantonline1/master
Configure token length, max length 6
2 parents 0a26f5e + ee6c8f2 commit cbe0594

File tree

4 files changed

+9
-3
lines changed

4 files changed

+9
-3
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,8 @@ DEFAULTS = {
323323
# Token Generation Retry Count
324324
'PASSWORDLESS_TOKEN_GENERATION_ATTEMPTS': 3
325325
326+
# The length of the token to send in email or sms, maximum 6
327+
'PASSWORDLESS_TOKEN_LENGTH': 6
326328
327329
}
328330
```

drfpasswordless/models.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from django.conf import settings
44
import string
55
from django.utils.crypto import get_random_string
6+
from drfpasswordless.settings import api_settings
67

78
def generate_hex_token():
89
return uuid.uuid1().hex
@@ -13,7 +14,7 @@ def generate_numeric_token():
1314
Generate a random 6 digit string of numbers.
1415
We use this formatting to allow leading 0s.
1516
"""
16-
return get_random_string(length=6, allowed_chars=string.digits)
17+
return get_random_string(length=api_settings.PASSWORDLESS_TOKEN_LENGTH, allowed_chars=string.digits)
1718

1819

1920
class CallbackTokenManger(models.Manager):

drfpasswordless/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ class AbstractBaseCallbackTokenSerializer(serializers.Serializer):
175175

176176
email = serializers.EmailField(required=False) # Needs to be required=false to require both.
177177
mobile = serializers.CharField(required=False, validators=[phone_regex], max_length=17)
178-
token = TokenField(min_length=6, max_length=6, validators=[token_age_validator])
178+
token = TokenField(min_length=api_settings.PASSWORDLESS_TOKEN_LENGTH, max_length=api_settings.PASSWORDLESS_TOKEN_LENGTH, validators=[token_age_validator])
179179

180180
def validate_alias(self, attrs):
181181
email = attrs.get('email', None)

drfpasswordless/settings.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,10 @@
8989
'PASSWORDLESS_SMS_CALLBACK': 'drfpasswordless.utils.send_sms_with_callback_token',
9090

9191
# Token Generation Retry Count
92-
'PASSWORDLESS_TOKEN_GENERATION_ATTEMPTS': 3
92+
'PASSWORDLESS_TOKEN_GENERATION_ATTEMPTS': 3,
93+
94+
# The length of the token to send in email or sms, maximum 6
95+
'PASSWORDLESS_TOKEN_LENGTH': 6
9396
}
9497

9598
# List of settings that may be in string import notation.

0 commit comments

Comments
 (0)