10
10
11
11
from flask_jwt_extended .config import config
12
12
from flask_jwt_extended .exceptions import (
13
- InvalidHeaderError , NoAuthorizationError , WrongTokenError ,
14
- FreshTokenRequired , CSRFError , UserLoadError , RevokedTokenError ,
15
- UserClaimsVerificationError
13
+ CSRFError , FreshTokenRequired , InvalidHeaderError , NoAuthorizationError ,
14
+ UserLoadError
16
15
)
17
16
from flask_jwt_extended .utils import (
18
- has_user_loader , user_loader , token_in_blacklist , decode_token ,
19
- has_token_in_blacklist_callback , verify_token_claims
17
+ decode_token , has_user_loader , user_loader , verify_token_claims ,
18
+ verify_token_not_blacklisted , verify_token_type
20
19
)
21
20
22
21
@@ -35,8 +34,7 @@ def wrapper(*args, **kwargs):
35
34
if request .method not in config .exempt_methods :
36
35
jwt_data = _decode_jwt_from_request (request_type = 'access' )
37
36
ctx_stack .top .jwt = jwt_data
38
- if not verify_token_claims (jwt_data [config .user_claims_key ]):
39
- raise UserClaimsVerificationError ('User claims verification failed' )
37
+ verify_token_claims (jwt_data )
40
38
_load_user (jwt_data [config .identity_claim_key ])
41
39
return fn (* args , ** kwargs )
42
40
return wrapper
@@ -61,8 +59,7 @@ def wrapper(*args, **kwargs):
61
59
try :
62
60
jwt_data = _decode_jwt_from_request (request_type = 'access' )
63
61
ctx_stack .top .jwt = jwt_data
64
- if not verify_token_claims (jwt_data [config .user_claims_key ]):
65
- raise UserClaimsVerificationError ('User claims verification failed' )
62
+ verify_token_claims (jwt_data )
66
63
_load_user (jwt_data [config .identity_claim_key ])
67
64
except (NoAuthorizationError , InvalidHeaderError ):
68
65
pass
@@ -93,8 +90,7 @@ def wrapper(*args, **kwargs):
93
90
now = timegm (datetime .utcnow ().utctimetuple ())
94
91
if fresh < now :
95
92
raise FreshTokenRequired ('Fresh token required' )
96
- if not verify_token_claims (jwt_data [config .user_claims_key ]):
97
- raise UserClaimsVerificationError ('User claims verification failed' )
93
+ verify_token_claims (jwt_data )
98
94
_load_user (jwt_data [config .identity_claim_key ])
99
95
return fn (* args , ** kwargs )
100
96
return wrapper
@@ -126,21 +122,6 @@ def _load_user(identity):
126
122
ctx_stack .top .jwt_user = user
127
123
128
124
129
- def _token_blacklisted (decoded_token , request_type ):
130
- if not config .blacklist_enabled :
131
- return False
132
- if not has_token_in_blacklist_callback ():
133
- raise RuntimeError ("A token_in_blacklist_callback must be provided via "
134
- "the '@token_in_blacklist_loader' if "
135
- "JWT_BLACKLIST_ENABLED is True" )
136
-
137
- if config .blacklist_access_tokens and request_type == 'access' :
138
- return token_in_blacklist (decoded_token )
139
- if config .blacklist_refresh_tokens and request_type == 'refresh' :
140
- return token_in_blacklist (decoded_token )
141
- return False
142
-
143
-
144
125
def _decode_jwt_from_headers ():
145
126
header_name = config .header_name
146
127
header_type = config .header_type
@@ -207,11 +188,9 @@ def _decode_jwt_from_request(request_type):
207
188
decoded_token = _decode_jwt_from_cookies (request_type )
208
189
209
190
# Make sure the type of token we received matches the request type we expect
210
- if decoded_token ['type' ] != request_type :
211
- raise WrongTokenError ('Only {} tokens can access this endpoint' .format (request_type ))
191
+ verify_token_type (decoded_token , expected_type = request_type )
212
192
213
193
# If blacklisting is enabled, see if this token has been revoked
214
- if _token_blacklisted (decoded_token , request_type ):
215
- raise RevokedTokenError ('Token has been revoked' )
194
+ verify_token_not_blacklisted (decoded_token , request_type )
216
195
217
196
return decoded_token
0 commit comments