from flask import Blueprint, request, jsonify, current_app import datetime import jwt from app.models.user import User from app import db user = Blueprint('user', __name__) @user.route('/login', methods=['POST']) def login(): data = request.get_json() username = data.get('username') password = data.get('password') if username and password: user = User.query.filter_by(username=username).first() if user and user.check_password(password): token = jwt.encode({ 'username': username, 'exp': datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(hours=1) }, current_app.config['SECRET_KEY'], algorithm='HS256') return jsonify({'token': token}) return jsonify({'message': 'Credenciales inválidas'}), 401 @user.route('/register', methods=['POST']) def register(): data = request.get_json() username = data.get('username') password = data.get('password') password_confirm = data.get('password_confirm') user = User.query.filter_by(username=username).first() if not user and password == password_confirm: new_user = User(username=username) new_user.set_password(password) # Establecer el hash de la contraseña db.session.add(new_user) db.session.commit() # Guardar cambios en la base de datos return jsonify({"success": True}), 200 else: return jsonify({'error': False}), 400