Commit f91b6257 authored by Guillermo Sanz López's avatar Guillermo Sanz López
Browse files

change autentication to JWT

parent c7c06dae
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
from flask import Flask
from flask import Flask, JWTManager
from .controllers.default_controller import backoffice_routes
from .controllers.login import access_routes
from OpenSSL.crypto import PKey, TYPE_RSA, X509Req, dump_certificate_request, FILETYPE_PEM, dump_privatekey
from .config import Config
import json
@@ -11,6 +12,11 @@ app = Flask(__name__)

# Register blueprints (routes)
app.register_blueprint(backoffice_routes)
app.register_blueprint(access_routes)

# Configure JWT
app.config["JWT_SECRET_KEY"] = "super-secret" # OJOOOOOOOOO CAMBIA SUPER_SECRET POR OTRA PALABRA
jwt = JWTManager(app)

# create public/PRIVATE key
key = PKey()
+34 −0
Original line number Diff line number Diff line
#!/usr/bin/env python3

from requests import request
from flask_jwt_extended import create_access_token
from flask import Blueprint, jsonify
from models import User
from flask_jwt_extended import JWTManager, jwt_required, create_access_token, create_refresh_token, get_jwt_identity, jwt_refresh_token_required

# create blueprint backoffice_routes
access_routes = Blueprint("acces_routes", __name__)

# Crea una ruta para autenticar a los usuarios y devolver el token JWT.
# La función create_access_token() se utiliza para generar el JWT.
@access_routes.route("/token", methods=["POST"])
def login():
    username = request.json.get("username", None)
    password = request.json.get("password", None)
    # username = request.form['username']
    # password = request.form['password']

    if username != "superadmin" or password != "1234":
        return jsonify({"msg": "Bad username or password"}), 401

    access_token = create_access_token(identity=username)
    refresh_token = create_refresh_token(identity=username)

    return jsonify(access_token=access_token, refresh_token=refresh_token)

@access_routes.route('/refresh', methods=['POST'])
@jwt_refresh_token_required
def refresh():
    current_user = get_jwt_identity()
    new_access_token = create_access_token(identity=current_user)
    return jsonify(access_token=new_access_token)
+1 −0
Original line number Diff line number Diff line
@@ -6,3 +6,4 @@ flask_jwt_extended
pyopenssl
pyyaml
requests
models