34 lines
993 B
Python
34 lines
993 B
Python
from flask import Blueprint, jsonify, request
|
|
from flask_jwt_extended import create_access_token
|
|
import pymysql
|
|
from config import Config
|
|
|
|
auth_bp = Blueprint('auth', __name__)
|
|
|
|
def get_db():
|
|
return pymysql.connect(
|
|
host=Config.MYSQL_HOST,
|
|
user=Config.MYSQL_USER,
|
|
password=Config.MYSQL_PASSWORD,
|
|
database=Config.MYSQL_DB,
|
|
cursorclass=pymysql.cursors.DictCursor
|
|
)
|
|
|
|
#POST — Login et génération du token JWT
|
|
@auth_bp.route('/login', methods=['POST'])
|
|
def login():
|
|
body = request.get_json()
|
|
username = body.get('username')
|
|
password = body.get('password')
|
|
|
|
db = get_db()
|
|
cursor = db.cursor()
|
|
cursor.execute("SELECT * FROM users WHERE username=%s AND password=%s", (username, password))
|
|
user = cursor.fetchone()
|
|
db.close()
|
|
|
|
if user:
|
|
token = create_access_token(identity=username)
|
|
return jsonify({'token': token}), 200
|
|
else:
|
|
return jsonify({'message': 'Identifiants incorrects'}), 401 |