Update .gitignore and add files
This commit is contained in:
59
back/blueprints/register.py
Normal file
59
back/blueprints/register.py
Normal file
@ -0,0 +1,59 @@
|
||||
from flask import Blueprint, request, jsonify, current_app
|
||||
import logging
|
||||
|
||||
bp = Blueprint('register', __name__)
|
||||
logger = logging.getLogger(__name__)
|
||||
FRONTEND_ORIGINS = [
|
||||
"http://localhost:8080",
|
||||
"http://127.0.0.1:8080",
|
||||
"http://[::1]:8080",
|
||||
"http://localhost:5173",
|
||||
"http://127.0.0.1:5173",
|
||||
"http://[::1]:5173"
|
||||
]
|
||||
|
||||
@bp.route('/register', methods=['POST', 'OPTIONS'])
|
||||
def register():
|
||||
if request.method == 'OPTIONS':
|
||||
origin = request.headers.get('Origin')
|
||||
if origin in FRONTEND_ORIGINS:
|
||||
response = jsonify()
|
||||
response.headers.add('Access-Control-Allow-Origin', origin)
|
||||
response.headers.add('Access-Control-Allow-Headers', 'Content-Type, Authorization')
|
||||
response.headers.add('Access-Control-Allow-Methods', 'POST, OPTIONS')
|
||||
response.headers.add('Access-Control-Allow-Credentials', 'true')
|
||||
return response, 200
|
||||
|
||||
try:
|
||||
logger.info("收到注册请求")
|
||||
data = request.get_json()
|
||||
if not data:
|
||||
return jsonify({'message': '请求数据为空'}), 400
|
||||
|
||||
username = data.get('username')
|
||||
password = data.get('password')
|
||||
if not all([username, password]):
|
||||
return jsonify({'message': '缺少用户名或密码'}), 400
|
||||
|
||||
db = current_app.get_db()
|
||||
cursor = db.cursor()
|
||||
|
||||
# 检查用户名是否已存在
|
||||
cursor.execute("SELECT id FROM user WHERE username = ?", (username,))
|
||||
if cursor.fetchone():
|
||||
return jsonify({'message': '用户名已存在'}), 400
|
||||
|
||||
# 插入数据时包含 permission_level(默认设为 Operator)
|
||||
cursor.execute(
|
||||
"INSERT INTO user (username, password, permission_level) VALUES (?, ?, ?)",
|
||||
(username, password, 'Operator')
|
||||
)
|
||||
db.commit()
|
||||
|
||||
logger.info(f"用户 {username} 注册成功")
|
||||
return jsonify({'message': '注册成功'}), 201
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"服务器内部错误: {str(e)}", exc_info=True)
|
||||
db.rollback()
|
||||
return jsonify({'message': '服务器内部错误'}), 500
|
||||
Reference in New Issue
Block a user