Skip to content

Commit ae093a4

Browse files
author
Chris Routh
authored
#541 Check for refresh cookie when JWT_AUTH_HTTPONLY is True (#572)
* #541 Check for refresh cookie when JWT_AUTH_HTTPONLY is True * #541 Address test failures.
1 parent c6b6530 commit ae093a4

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

dj_rest_auth/views.py

+14-4
Original file line numberDiff line numberDiff line change
@@ -178,11 +178,21 @@ def logout(self, request):
178178
if 'rest_framework_simplejwt.token_blacklist' in settings.INSTALLED_APPS:
179179
# add refresh token to blacklist
180180
try:
181-
token = RefreshToken(request.data['refresh'])
181+
token: RefreshToken = RefreshToken(None)
182+
if api_settings.JWT_AUTH_HTTPONLY:
183+
try:
184+
token = RefreshToken(request.COOKIES[api_settings.JWT_AUTH_REFRESH_COOKIE])
185+
except KeyError:
186+
response.data = {'detail': _('Refresh token was not included in cookie data.')}
187+
response.status_code =status.HTTP_401_UNAUTHORIZED
188+
else:
189+
try:
190+
token = RefreshToken(request.data['refresh'])
191+
except KeyError:
192+
response.data = {'detail': _('Refresh token was not included in request data.')}
193+
response.status_code =status.HTTP_401_UNAUTHORIZED
194+
182195
token.blacklist()
183-
except KeyError:
184-
response.data = {'detail': _('Refresh token was not included in request data.')}
185-
response.status_code =status.HTTP_401_UNAUTHORIZED
186196
except (TokenError, AttributeError, TypeError) as error:
187197
if hasattr(error, 'args'):
188198
if 'Token is blacklisted' in error.args or 'Token is invalid or expired' in error.args:

0 commit comments

Comments
 (0)