Files
UseCaseDB/app/codes/user.py
2024-12-06 00:52:33 +01:00

42 lines
1.4 KiB
Python

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