"""认证相关路由""" from flask import Blueprint, request, jsonify from flask_jwt_extended import jwt_required, get_jwt_identity, create_access_token from services.auth_service import AuthService from services.user_service import UserService auth_bp = Blueprint('auth', __name__) @auth_bp.route('/send-verification-code', methods=['POST']) def send_verification_code(): """发送验证码""" data = request.get_json() result, status_code = AuthService.send_verification_code(data) return jsonify(result), status_code @auth_bp.route('/register', methods=['POST']) def register(): """用户注册 - 需要验证码""" data = request.get_json() result, status_code = AuthService.register(data) return jsonify(result), status_code @auth_bp.route('/login', methods=['POST']) def login(): """用户登录""" data = request.get_json() result, status_code = AuthService.login(data) return jsonify(result), status_code @auth_bp.route('/me', methods=['GET']) @jwt_required() def get_current_user(): """获取当前用户信息""" current_user_id = get_jwt_identity() result, status_code = UserService.get_profile(current_user_id) return jsonify(result), status_code @auth_bp.route('/change-password', methods=['POST']) @jwt_required() def change_password(): """修改密码""" current_user_id = get_jwt_identity() data = request.get_json() result, status_code = AuthService.change_password(current_user_id, data) return jsonify(result), status_code @auth_bp.route('/reset-password', methods=['POST']) def reset_password(): """重置密码 - 需要验证码""" data = request.get_json() result, status_code = AuthService.reset_password(data) return jsonify(result), status_code @auth_bp.route('/verify-code', methods=['POST']) def verify_code(): """验证验证码是否有效(不标记为已使用)""" data = request.get_json() result, status_code = AuthService.verify_code(data) return jsonify(result), status_code @auth_bp.route('/refresh', methods=['POST']) @jwt_required(refresh=True) def refresh(): """刷新访问令牌""" current_user_id = get_jwt_identity() access_token = create_access_token(identity=current_user_id) return jsonify({ 'access_token': access_token }), 200