@@ -36,10 +36,15 @@ def login():
36
36
}
37
37
return jsonify (ret ), 200
38
38
39
- @self .app .route ('/auth/token/<identity>' , methods = ['GET' ])
40
- def get_single_token (identity ):
39
+ @self .app .route ('/auth/token/jti/<jti>' , methods = ['GET' ])
40
+ @self .app .route ('/auth/token/encoded_token/<encoded_token>' , methods = ['GET' ])
41
+ @self .app .route ('/auth/token/encoded_token/' , methods = ['GET' ])
42
+ def get_single_token (jti = None , encoded_token = None ):
41
43
try :
42
- return jsonify (get_stored_token (identity )), 200
44
+ if jti is not None :
45
+ return jsonify (get_stored_token (jti = jti )), 200
46
+ else :
47
+ return jsonify (get_stored_token (encoded_token = encoded_token )), 200
43
48
except KeyError :
44
49
return jsonify ({"msg" : "token not found" }), 404
45
50
@@ -399,20 +404,34 @@ def test_get_specific_identity(self):
399
404
self .assertEqual (len (data ), 0 )
400
405
401
406
def test_get_stored_token (self ):
402
- self ._login ('test1' )
407
+ access_token , refresh_token = self ._login ('test1' )
403
408
response = self .client .get ('/auth/tokens' )
404
409
data = json .loads (response .get_data (as_text = True ))
405
410
refresh_jti = data [0 ]['token' ]['jti' ]
406
411
407
- response = self .client .get ('/auth/token/{}' .format (refresh_jti ))
412
+ # Test getting the token by passing in JTI
413
+ response = self .client .get ('/auth/token/jti/{}' .format (refresh_jti ))
414
+ status_code = response .status_code
415
+ data = json .loads (response .get_data (as_text = True ))
416
+ self .assertEqual (status_code , 200 )
417
+ self .assertIn ('token' , data )
418
+ self .assertIn ('revoked' , data )
419
+ self .assertEqual (len (data ), 2 )
420
+
421
+ # Test getting the token by passing in the encoded token
422
+ response = self .client .get ('/auth/token/encoded_token/{}' .format (refresh_token ))
408
423
status_code = response .status_code
409
424
data = json .loads (response .get_data (as_text = True ))
410
425
self .assertEqual (status_code , 200 )
411
426
self .assertIn ('token' , data )
412
427
self .assertIn ('revoked' , data )
413
428
self .assertEqual (len (data ), 2 )
414
429
415
- response = self .client .get ('/auth/token/404notokenfound' )
430
+ # Test passing neither throws an exception
431
+ with self .assertRaises (ValueError ):
432
+ self .client .get ('/auth/token/encoded_token/' )
433
+
434
+ response = self .client .get ('/auth/token/jti/404notokenfound' )
416
435
status_code = response .status_code
417
436
data = json .loads (response .get_data (as_text = True ))
418
437
self .assertEqual (status_code , 404 )
0 commit comments