This repository was archived by the owner on May 26, 2020. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +24
-1
lines changed Expand file tree Collapse file tree 3 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -20,10 +20,11 @@ def jwt_payload_handler(user):
2020
2121 payload = {
2222 'user_id' : user .pk ,
23- 'email' : user .email ,
2423 'username' : username ,
2524 'exp' : datetime .utcnow () + api_settings .JWT_EXPIRATION_DELTA
2625 }
26+ if hasattr (user , 'email' ):
27+ payload ['email' ] = user .email
2728 if isinstance (user .pk , uuid .UUID ):
2829 payload ['user_id' ] = str (user .pk )
2930
Original file line number Diff line number Diff line change @@ -14,6 +14,17 @@ class Meta:
1414 app_label = 'tests'
1515
1616
17+ class CustomUserWithoutEmail (AbstractBaseUser ):
18+ username = models .CharField (max_length = 255 , unique = True )
19+
20+ objects = BaseUserManager ()
21+
22+ USERNAME_FIELD = 'username'
23+
24+ class Meta :
25+ app_label = 'tests'
26+
27+
1728class CustomUserUUID (AbstractBaseUser ):
1829 id = models .UUIDField (primary_key = True , default = uuid .uuid4 , editable = False )
1930 email = models .EmailField (max_length = 255 , unique = True )
Original file line number Diff line number Diff line change 88from rest_framework_jwt import utils
99from rest_framework_jwt .compat import get_user_model
1010from rest_framework_jwt .settings import api_settings , DEFAULTS
11+ from tests .models import CustomUserWithoutEmail
1112
1213User = get_user_model ()
1314
@@ -38,6 +39,16 @@ def test_jwt_payload_handler(self):
3839 self .assertEqual (payload ['username' ], self .username )
3940 self .assertTrue ('exp' in payload )
4041
42+ def test_jwt_payload_handler_no_email_address (self ):
43+ user = CustomUserWithoutEmail .objects .create (username = self .username )
44+
45+ payload = utils .jwt_payload_handler (user )
46+ self .assertTrue (isinstance (payload , dict ))
47+ self .assertFalse (hasattr (payload , 'email' ))
48+ self .assertEqual (payload ['user_id' ], self .user .pk )
49+ self .assertEqual (payload ['username' ], self .username )
50+ self .assertTrue ('exp' in payload )
51+
4152 def test_jwt_encode (self ):
4253 payload = utils .jwt_payload_handler (self .user )
4354 token = utils .jwt_encode_handler (payload )
You can’t perform that action at this time.
0 commit comments