Files
Comparison_Project/app/routes/auth.py

46 lines
1.5 KiB
Python

from flask import Blueprint, render_template, request, redirect, url_for, flash, session
from app.services.user_service import UserService
auth_bp = Blueprint("auth", __name__)
@auth_bp.route("/", methods=["GET", "POST"])
@auth_bp.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
email = request.form.get("email")
password = request.form.get("password")
user = UserService.validate_login(email, password)
if user:
session["user_id"] = user.id
session["user_name"] = user.name
flash("Login successful", "success")
return redirect(url_for("dashboard.dashboard"))
flash("Invalid email or password", "danger")
return render_template("login.html", title="Login")
@auth_bp.route("/logout")
def logout():
session.clear()
flash("Logged out successfully", "info")
return redirect(url_for("auth.login"))
@auth_bp.route("/register", methods=["GET", "POST"])
def register():
if request.method == "POST":
name = request.form.get("name")
email = request.form.get("email")
password = request.form.get("password")
user = UserService.register_user(name, email, password)
if not user:
flash("Email already exists", "danger")
return redirect(url_for("auth.register"))
flash("User registered successfully", "success")
return redirect(url_for("auth.login"))
return render_template("register.html", title="Register")