Skip to content

Commit d66d246

Browse files
authored
Fix the None value of the outstanding token of the blacklist (#806)
1 parent 3b71b89 commit d66d246

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

rest_framework_simplejwt/tokens.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,11 +265,14 @@ def blacklist(self) -> BlacklistedToken:
265265
"""
266266
jti = self.payload[api_settings.JTI_CLAIM]
267267
exp = self.payload["exp"]
268+
user_id = self.payload.get(api_settings.USER_ID_CLAIM)
268269

269270
# Ensure outstanding token exists with given jti
270271
token, _ = OutstandingToken.objects.get_or_create(
271272
jti=jti,
272273
defaults={
274+
"user_id": user_id,
275+
"created_at": self.current_time,
273276
"token": str(self),
274277
"expires_at": datetime_from_epoch(exp),
275278
},

tests/test_token_blacklist.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,20 @@ def test_outstanding_token_and_blacklisted_token_expected_str(self):
146146
self.assertEqual(str(outstanding), expected_outstanding_str)
147147
self.assertEqual(str(blacklisted), expected_blacklisted_str)
148148

149+
def test_outstanding_token_and_blacklisted_token_created_at(self):
150+
token = RefreshToken.for_user(self.user)
151+
152+
token.blacklist()
153+
outstanding_token = OutstandingToken.objects.get(token=token)
154+
self.assertEqual(outstanding_token.created_at, token.current_time)
155+
156+
def test_outstanding_token_and_blacklisted_token_user(self):
157+
token = RefreshToken.for_user(self.user)
158+
159+
token.blacklist()
160+
outstanding_token = OutstandingToken.objects.get(token=token)
161+
self.assertEqual(outstanding_token.user, self.user)
162+
149163

150164
class TestTokenBlacklistFlushExpiredTokens(TestCase):
151165
def setUp(self):

0 commit comments

Comments
 (0)