From 13fe4829568a57ae99842b0c7b8789ae5fe2ee3f Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 6 Dec 2024 00:27:27 +0100 Subject: [PATCH] First login done --- .gitignore | 4 ++++ app/__init__.py | 19 +++++++++++++++++++ app/codes/user.py | 22 ++++++++++++++++++++++ server.py | 15 +++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 .gitignore create mode 100644 app/__init__.py create mode 100644 app/codes/user.py create mode 100644 server.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c05f9c5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.venvManjaro/ +app/__pycache__/ +app/models/__pycache__/ +app/codes/__pycache__/ \ No newline at end of file diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..3e65cb7 --- /dev/null +++ b/app/__init__.py @@ -0,0 +1,19 @@ +from flask import Flask +from dotenv import load_dotenv + +# Cargar las variables de entorno desde .env + + + +def create_app(): + app = Flask(__name__) + + load_dotenv() + + app.config['SECRET_KEY'] = 'mi_secreto' + + # Registro de blueprints + from app.codes.user import login + app.register_blueprint(login, url_prefix='/') + + return app diff --git a/app/codes/user.py b/app/codes/user.py new file mode 100644 index 0000000..f9017d9 --- /dev/null +++ b/app/codes/user.py @@ -0,0 +1,22 @@ +from flask import Blueprint, request, jsonify, current_app +import datetime +import jwt + +login = Blueprint('login', __name__) + +@login.route('/login', methods=['POST']) +def login_view(): + data = request.get_json() + username = data.get('username') + password = data.get('password') + + # Aquí se validan las credenciales (en este caso un ejemplo simple) + if username == 'admin' and password == 'password': + # Generar token + token = jwt.encode({ + 'username': username, + 'exp': datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(hours=1) + }, current_app.config['SECRET_KEY'], algorithm='HS256') # Usamos current_app para acceder a la configuración + return jsonify({'token': token}) + + return jsonify({'message': 'Credenciales inválidas'}), 401 diff --git a/server.py b/server.py new file mode 100644 index 0000000..e3e6c05 --- /dev/null +++ b/server.py @@ -0,0 +1,15 @@ +from app import create_app +from flask import render_template, session, redirect + +app = create_app() + +@app.route('/', methods = ['GET']) +def index(): + userId = session.get('userId') + if userId: + return "test" + else: + return "test" + +if __name__ == "__main__": + app.run(debug=True, port="8080") \ No newline at end of file