first commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
from flask import request, jsonify
|
||||
from flask_jwt_extended import create_access_token
|
||||
from . import api_bp
|
||||
from ..models import User
|
||||
from ..schemas import UserCreateSchema
|
||||
from ..services import AuthService
|
||||
|
||||
|
||||
user_create_schema = UserCreateSchema()
|
||||
|
||||
|
||||
@api_bp.route("/auth/register", methods=["POST"])
|
||||
def register():
|
||||
data = request.get_json()
|
||||
errors = user_create_schema.validate(data)
|
||||
if errors:
|
||||
return jsonify({"error": errors}), 400
|
||||
|
||||
try:
|
||||
user = AuthService.register(
|
||||
data["username"], data["password"], data.get("email")
|
||||
)
|
||||
access_token = create_access_token(identity=user.id)
|
||||
return jsonify(
|
||||
{
|
||||
"message": "注册成功",
|
||||
"user": user.to_dict(),
|
||||
"access_token": access_token,
|
||||
}
|
||||
), 201
|
||||
except ValueError as e:
|
||||
return jsonify({"error": str(e)}), 400
|
||||
|
||||
|
||||
@api_bp.route("/auth/login", methods=["POST"])
|
||||
def login():
|
||||
data = request.get_json()
|
||||
username = data.get("username")
|
||||
password = data.get("password")
|
||||
|
||||
if not username or not password:
|
||||
return jsonify({"error": "用户名和密码不能为空"}), 400
|
||||
|
||||
try:
|
||||
user = AuthService.login(username, password)
|
||||
access_token = create_access_token(identity=user.id)
|
||||
return jsonify(
|
||||
{
|
||||
"message": "登录成功",
|
||||
"user": user.to_dict(),
|
||||
"access_token": access_token,
|
||||
}
|
||||
), 200
|
||||
except ValueError as e:
|
||||
return jsonify({"error": str(e)}), 401
|
||||
Reference in New Issue
Block a user