-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauth.py
More file actions
25 lines (20 loc) · 725 Bytes
/
auth.py
File metadata and controls
25 lines (20 loc) · 725 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from functools import wraps
from flask import request, jsonify, g, Response
import db
def require_auth(func):
@wraps(func)
def wrapper(*args, **kwargs):
if request.method == 'OPTIONS':
return Response(status=204)
token = request.headers.get("Authorization")
if token and token.startswith("Bearer "):
token = token.split(" ")[1]
token = token or request.args.get("token")
if not token:
return jsonify({"error": "Missing token"}), 401
user = db.get_user_by_session(token)
if not user:
return jsonify({"error": "Invalid token"}), 401
g.user = user
return func(*args, **kwargs)
return wrapper