This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

29 lines
824 B
Python

from datetime import datetime
from flask.json import JSONEncoder
from flask import current_app, request, abort, g
from functools import wraps
class MyJSONEncoder(JSONEncoder):
def default(self, o):
if isinstance(o, datetime):
return o.isoformat()
return super(MyJSONEncoder, self).default(o)
def require_token(func):
@wraps(func)
def check_token(*args, **kwargs):
if 'Authorization' not in request.headers:
abort(401)
auth_type, token = request.headers.get('Authorization').split(' ')
if auth_type != 'Token':
abort(401)
users = current_app.config.get('API_KEYS', {})
if token not in users.keys():
abort(401)
g.user = users.get(token)
return func(*args, **kwargs)
return check_token