|
5 | 5 |
|
6 | 6 | import simplekv.memory
|
7 | 7 | from flask import Flask, jsonify, request
|
8 |
| -from flask_jwt_extended.blacklist import _get_token_ttl |
| 8 | +from flask_jwt_extended.blacklist import _get_token_ttl, get_stored_token |
9 | 9 | from flask_jwt_extended.utils import _encode_refresh_token, _decode_jwt, \
|
10 | 10 | fresh_jwt_required, get_jwt_identity
|
11 | 11 |
|
@@ -33,6 +33,13 @@ def login():
|
33 | 33 | }
|
34 | 34 | return jsonify(ret), 200
|
35 | 35 |
|
| 36 | + @self.app.route('/auth/token/<identity>', methods=['GET']) |
| 37 | + def get_single_token(identity): |
| 38 | + try: |
| 39 | + return jsonify(get_stored_token(identity)), 200 |
| 40 | + except KeyError: |
| 41 | + return jsonify({"msg": "token not found"}), 404 |
| 42 | + |
36 | 43 | @self.app.route('/auth/tokens/<identity>', methods=['GET'])
|
37 | 44 | def list_identity_tokens(identity):
|
38 | 45 | return jsonify(get_stored_tokens(identity)), 200
|
@@ -358,3 +365,23 @@ def test_get_specific_identity(self):
|
358 | 365 | data = json.loads(response.get_data(as_text=True))
|
359 | 366 | self.assertEqual(status_code, 200)
|
360 | 367 | self.assertEqual(len(data), 0)
|
| 368 | + |
| 369 | + def test_get_stored_token(self): |
| 370 | + self._login('test1') |
| 371 | + response = self.client.get('/auth/tokens') |
| 372 | + data = json.loads(response.get_data(as_text=True)) |
| 373 | + refresh_jti = data[0]['token']['jti'] |
| 374 | + |
| 375 | + response = self.client.get('/auth/token/{}'.format(refresh_jti)) |
| 376 | + status_code = response.status_code |
| 377 | + data = json.loads(response.get_data(as_text=True)) |
| 378 | + self.assertEqual(status_code, 200) |
| 379 | + self.assertIn('token', data) |
| 380 | + self.assertIn('revoked', data) |
| 381 | + self.assertIn('last_used', data) |
| 382 | + |
| 383 | + response = self.client.get('/auth/token/404notokenfound') |
| 384 | + status_code = response.status_code |
| 385 | + data = json.loads(response.get_data(as_text=True)) |
| 386 | + self.assertEqual(status_code, 404) |
| 387 | + self.assertIn('msg', data) |
0 commit comments