CDRM-Project/routes/login.py

46 lines
1.3 KiB
Python

from flask import Blueprint, request, jsonify, session
from custom_functions.database.user_db import verify_user
login_bp = Blueprint(
"login_bp",
__name__,
)
@login_bp.route("/login", methods=["POST"])
def login():
if request.method == "POST":
data = request.get_json()
for required_field in ["username", "password"]:
if required_field not in data:
return (
jsonify({"error": f"Missing required field: {required_field}"}),
400,
)
if verify_user(data["username"], data["password"]):
session["username"] = data[
"username"
].lower() # Stored securely in a signed cookie
return jsonify({"message": "Successfully logged in!"})
else:
return jsonify({"error": "Invalid username or password!"}), 401
@login_bp.route("/login/status", methods=["POST"])
def login_status():
try:
username = session.get("username")
if username:
return jsonify({"message": "True"})
else:
return jsonify({"message": "False"})
except:
return jsonify({"message": "False"})
@login_bp.route("/logout", methods=["POST"])
def logout():
session.pop("username", None)
return jsonify({"message": "Successfully logged out!"})