Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configurable token length, max length 6 #86

Open
wants to merge 30 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
ee6c8f2
Configure token length, max length 6
nishantonline1 Mar 18, 2021
908005a
Merge branch 'aaronn:master' into master
naveenpanwar Aug 16, 2022
34ac637
fix: Fixing codestyle changes
naveenpanwar Aug 17, 2022
3eba9ae
Added Auth token support
anish5256 Sep 30, 2024
0e2a9f5
Updated version
anish5256 Sep 30, 2024
66bc2eb
Merge pull request #1 from anish5256/master
nishantonline1 Sep 30, 2024
5c4d583
model changes and migration
anish5256 Oct 4, 2024
fb5f77e
Token create change
anish5256 Oct 4, 2024
415ceb7
fix
anish5256 Oct 4, 2024
7c85d31
Merge pull request #2 from anish5256/master
anish5256 Oct 4, 2024
9f084f9
Made device_id unique
anish5256 Oct 4, 2024
b7c1a71
Merge pull request #3 from anish5256/master
anish5256 Oct 4, 2024
a975532
Import Q from models
anish5256 Oct 5, 2024
d527820
Merge pull request #4 from anish5256/master
anish5256 Oct 5, 2024
c5d753d
Remove Unique Constrain
anish5256 Oct 17, 2024
98cb82b
Added unique constrain user and device_id
anish5256 Oct 17, 2024
e3934a8
Merge pull request #5 from anish5256/master
anish5256 Oct 20, 2024
a666829
Update version to 1.6.0
anish5256 Oct 20, 2024
5c5ca32
Merge pull request #6 from anish5256/master
anish5256 Oct 20, 2024
d6e08d1
added user, device_id and device_type to readonly fields.
wick-prat Dec 17, 2024
ea087bb
changed version from 1.6.0 to 1.6.1
wick-prat Dec 17, 2024
d25561f
Merge pull request #8 from wick-prat/token_filter
nishantonline1 Dec 17, 2024
3487c62
Allow deive type to be different
anish5256 Jan 23, 2025
da39087
Merge pull request #9 from anish5256/master
anish5256 Jan 23, 2025
0e5de94
Allow deive type to be different
anish5256 Jan 23, 2025
a575130
Merge branch 'master' into master
anish5256 Jan 23, 2025
7ee9d99
Merge pull request #10 from anish5256/master
anish5256 Jan 23, 2025
0e174bd
changes
anish5256 Mar 19, 2025
3fd778a
version upgrade
anish5256 Mar 21, 2025
c692cca
Merge pull request #11 from anish5256/otp_validation_try
anish5256 Mar 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Configure token length, max length 6
nishantonline1 committed Mar 18, 2021
commit ee6c8f2287ff3aea2f3d2c5ced9b3f4409faf8fb
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -323,6 +323,8 @@ DEFAULTS = {
# Token Generation Retry Count
'PASSWORDLESS_TOKEN_GENERATION_ATTEMPTS': 3

# The length of the token to send in email or sms, maximum 6
'PASSWORDLESS_TOKEN_LENGTH': 6

}
```
3 changes: 2 additions & 1 deletion drfpasswordless/models.py
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
from django.conf import settings
import string
from django.utils.crypto import get_random_string
from drfpasswordless.settings import api_settings

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


class CallbackTokenManger(models.Manager):
2 changes: 1 addition & 1 deletion drfpasswordless/serializers.py
Original file line number Diff line number Diff line change
@@ -175,7 +175,7 @@ class AbstractBaseCallbackTokenSerializer(serializers.Serializer):

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

def validate_alias(self, attrs):
email = attrs.get('email', None)
5 changes: 4 additions & 1 deletion drfpasswordless/settings.py
Original file line number Diff line number Diff line change
@@ -89,7 +89,10 @@
'PASSWORDLESS_SMS_CALLBACK': 'drfpasswordless.utils.send_sms_with_callback_token',

# Token Generation Retry Count
'PASSWORDLESS_TOKEN_GENERATION_ATTEMPTS': 3
'PASSWORDLESS_TOKEN_GENERATION_ATTEMPTS': 3,

# The length of the token to send in email or sms, maximum 6
'PASSWORDLESS_TOKEN_LENGTH': 6
}

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