From 2e937a78eb986d1675dadcdbda53aee70dffcd14 Mon Sep 17 00:00:00 2001 From: Benson Liu Date: Sun, 16 Jul 2023 01:00:17 -0700 Subject: [PATCH] implemented is_authenticated middleware Co-authored-by: Trisha Reddy <105570654+trishavreddy@users.noreply.github.com> Co-authored-by: Chloe <138538887+ChL4859@users.noreply.github.com> --- server/utils.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 server/utils.py diff --git a/server/utils.py b/server/utils.py new file mode 100644 index 0000000..cb999b1 --- /dev/null +++ b/server/utils.py @@ -0,0 +1,27 @@ +from flask import request, jsonify + +import functools + +from models.session import Session + + +def is_authenticated(f): + def not_authenticated(): + res = {"status": "Not authenticated."} + return jsonify(res), 401 + + @functools.wraps(f) + def wrapper(*args, **kwargs): + token = request.cookies.get("session") + + from app import app, db + + with app.app_context(): + session = db.session.query(Session).filter_by(token=token).first() + + if session is None: + return not_authenticated() + + return f(*args, **kwargs) + + return wrapper