Skip to content

Commit 0300402

Browse files
committed
revoke procedure is now complete, fixes #229
1 parent 82352ff commit 0300402

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

README.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ master branch
9696
* ``oauthlib_backend_class`` is now pluggable through Django settings
9797
* #127: ``application/json`` Content-Type is now supported using ``JSONOAuthLibCore``
9898
* #238: Fixed redirect uri handling in case of error
99+
* #229: Invalidate access tokens when getting a new refresh token
99100

100101
0.8.1 [2015-04-27]
101102
~~~~~~~~~~~~~~~~~~

docs/changelog.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ master branch
77
* ``oauthlib_backend_class`` is now pluggable through Django settings
88
* #127: ``application/json`` Content-Type is now supported using ``JSONOAuthLibCore``
99
* #238: Fixed redirect uri handling in case of error
10+
* #229: Invalidate access tokens when getting a new refresh token
1011

1112

1213
0.8.1 [2015-04-27]

oauth2_provider/oauth2_validators.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ def save_bearer_token(self, token, request, *args, **kwargs):
286286
if request.refresh_token:
287287
# remove used refresh token
288288
try:
289-
RefreshToken.objects.get(token=request.refresh_token).delete()
289+
RefreshToken.objects.get(token=request.refresh_token).revoke()
290290
except RefreshToken.DoesNotExist:
291291
assert() # TODO though being here would be very strange, at least log the error
292292

@@ -332,10 +332,11 @@ def revoke_token(self, token, token_type_hint, request, *args, **kwargs):
332332

333333
token_type = token_types.get(token_type_hint, AccessToken)
334334
try:
335-
token_type.objects.get(token=token).delete()
335+
token_type.objects.get(token=token).revoke()
336336
except ObjectDoesNotExist:
337337
for other_type in [_t for _t in token_types.values() if _t != token_type]:
338-
other_type.objects.filter(token=token).delete()
338+
# slightly inefficient on Python2, but the queryset contains only one instance
339+
list(map(lambda t: t.revoke(), other_type.objects.filter(token=token)))
339340

340341
def validate_user(self, username, password, client, request, *args, **kwargs):
341342
"""

0 commit comments

Comments
 (0)