Create user , user login register routes and pages

This commit is contained in:
2026-01-10 01:04:21 +05:30
parent fe9b056128
commit 54f3d16b57
17 changed files with 322 additions and 387 deletions

View File

@@ -1,31 +1,45 @@
from flask import Blueprint, request, render_template, redirect, flash, session
from app.services.user_service import UserService
from flask import Blueprint, render_template, request, redirect, url_for, flash, session
from app.services.user_service import UserService
auth_bp = Blueprint("auth", __name__, url_prefix="/auth")
auth_bp = Blueprint("auth", __name__)
# LOGIN PAGE
@auth_bp.route("/", methods=["GET", "POST"])
@auth_bp.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
user = UserService.validate_login(
request.form["email"],
request.form["password"]
)
email = request.form.get("email")
password = request.form.get("password")
user = UserService.validate_login(email, password)
if user:
session["user_id"] = user.id
return redirect("/dashboard")
flash("Invalid credentials", "danger")
return render_template("login.html")
session["user_name"] = user.name
flash("Login successful", "success")
return redirect(url_for("dashboard.dashboard"))
# REGISTER API ONLY
@auth_bp.route("/register", methods=["POST"])
def register():
data = request.json
UserService.register_user(data["name"], data["email"], data["password"])
return {"message": "User registered successfully"}, 201
flash("Invalid email or password", "danger")
return render_template("login.html", title="Login")
# LOGOUT
@auth_bp.route("/logout")
def logout():
session.clear()
return redirect("/auth/login")
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")