Files
hsa/Html/apps/views/auth.py
2025-08-29 21:41:20 +08:00

54 lines
1.7 KiB
Python

# myapp/views/auth.py
from flask import Blueprint, render_template, request, jsonify, redirect, url_for, session, current_app
from ..services.auth_service import register_user, login_user, logout_user
from ..auth.decorators import require_role
bp = Blueprint("auth", __name__)
@bp.get("/register")
def register():
return render_template("register.html")
@bp.get("/register_teacher")
def register_teacher():
return render_template("register_teacher.html")
@bp.post("/register_post")
def register_post():
data = request.get_json(force=True) or {}
ok, msg = register_user(data.get("username"), data.get("password"), teacher=False)
return jsonify({"success": ok, "message": msg})
@bp.post("/register_teacher_post")
def register_teacher_post():
data = request.get_json(force=True) or {}
ok, msg = register_user(data.get("username"), data.get("password"), teacher=True)
return jsonify({"success": ok, "message": msg})
@bp.get("/login")
def login():
# 你原来 return 后还有逻辑,已被覆盖;这里简化
return render_template("login.html")
@bp.post("/login_post")
def login_post():
data = request.get_json(force=True) or {}
ok, msg = login_user(data.get("username"), data.get("password"), require_teacher=False)
return jsonify({"success": ok, "message": msg})
@bp.post("/login_teacher_post")
def login_teacher_post():
data = request.get_json(force=True) or {}
ok, msg = login_user(data.get("username"), data.get("password"), require_teacher=True)
return jsonify({"success": ok, "message": msg})
@bp.get("/logout")
def logout():
logout_user()
return redirect(url_for("auth.login"))
@bp.get("/get_session")
def get_session():
return jsonify({"session": session.get("user_id", "default_session")})