· 4 years ago · Apr 22, 2021, 02:28 PM
1import json
2import jwt
3from flask import Flask, request
4
5flask_app = Flask(__name__)
6
7SECRET_KEY = "hkBxrbZ9Td4QEwgRewV6gZSVH4q78vBia4GBYuqd09SsiMsIjH"
8
9
10def token_required(something):
11 def wrap():
12 try:
13 token_passed = request.headers['TOKEN']
14 if request.headers['TOKEN'] != '' and request.headers['TOKEN'] is not None:
15 try:
16 data = jwt.decode(token_passed, SECRET_KEY, algorithms=['HS256'])
17 print(data)
18 return something()
19 except jwt.exceptions.ExpiredSignatureError:
20 return_data = {
21 "error": "1",
22 "message": "Token has expired"
23 }
24 return flask_app.response_class(response=json.dumps(return_data), mimetype='application/json'), 401
25 except:
26 return_data = {
27 "error": "1",
28 "message": "Invalid Token"
29 }
30 return flask_app.response_class(response=json.dumps(return_data), mimetype='application/json'), 401
31 else:
32 return_data = {
33 "error": "2",
34 "message": "Token required",
35 }
36 return flask_app.response_class(response=json.dumps(return_data), mimetype='application/json'), 401
37 except Exception as e:
38 return_data = {
39 "error": "3",
40 "message": "An error occured"
41 }
42 return flask_app.response_class(response=json.dumps(return_data), mimetype='application/json'), 500
43
44 return wrap
45