@@ -36,10 +36,15 @@ def login():
3636 }
3737 return jsonify (ret ), 200
3838
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 ):
4143 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
4348 except KeyError :
4449 return jsonify ({"msg" : "token not found" }), 404
4550
@@ -399,20 +404,34 @@ def test_get_specific_identity(self):
399404 self .assertEqual (len (data ), 0 )
400405
401406 def test_get_stored_token (self ):
402- self ._login ('test1' )
407+ access_token , refresh_token = self ._login ('test1' )
403408 response = self .client .get ('/auth/tokens' )
404409 data = json .loads (response .get_data (as_text = True ))
405410 refresh_jti = data [0 ]['token' ]['jti' ]
406411
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 ))
408423 status_code = response .status_code
409424 data = json .loads (response .get_data (as_text = True ))
410425 self .assertEqual (status_code , 200 )
411426 self .assertIn ('token' , data )
412427 self .assertIn ('revoked' , data )
413428 self .assertEqual (len (data ), 2 )
414429
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' )
416435 status_code = response .status_code
417436 data = json .loads (response .get_data (as_text = True ))
418437 self .assertEqual (status_code , 404 )
0 commit comments