Маршрут входа в Flask не работает с bcrypt и PostgreSQL – получение ответа об ошибке [закрыто]Python

Программы на Python
Ответить
Anonymous
 Маршрут входа в Flask не работает с bcrypt и PostgreSQL – получение ответа об ошибке [закрыто]

Сообщение Anonymous »

Что я пробовал:
  • Проверил, что SQL-запрос извлекает правильный пароль_хеш из базы данных, добавив отладочные операторы печати.
  • Подтверждено, что функция bcrypt.checkpw() сравнивает введенный пароль с сохраненным хешем.
  • Проверены журналы на наличие дополнительной информации об ошибках и проверено соединение с базой данных. .
Операторы отладки показывают ожидаемые типы данных и значения, но процесс входа по-прежнему завершается с ошибкой 500. Мы будем очень признательны за любые рекомендации или предложения о том, что попробовать дальше.
from flask import Flask, request, jsonify
from flask_cors import CORS
import psycopg2
import bcrypt

app = Flask(__name__)
CORS(app)

# Database connection details
DATABASE = {
'dbname': 'blacklist_db',
'user': 'postgres',
'password': 'Project31$', # Use your own password
'host': 'localhost',
'port': '5432'
}

# Function to connect to the database
def connect_db():
try:
conn = psycopg2.connect(
dbname=DATABASE['dbname'],
user=DATABASE['user'],
password=DATABASE['password'],
host=DATABASE['host'],
port=DATABASE['port']
)
return conn
except Exception as e:
print(f"Database connection error: {e}")
return None

# Login route with debug print statements
@app.route('/login', methods=['POST'])
def login():
data = request.json
email = data.get('email')
password = data.get('password')

print(f"Email: {email}, Password: {password}") # Debugging output

conn = connect_db()
if conn is None:
return jsonify({'message': 'Database connection error'}), 500

try:
cursor = conn.cursor()
query = "SELECT password_hash FROM Masters WHERE email = %s"
cursor.execute(query, (email,))
user = cursor.fetchone()

print("Fetched user:", user) # Added debug information

if user and user[0] is not None:
if bcrypt.checkpw(password.encode('utf-8'), user[0]):
return jsonify({'message': 'Login successful'}), 200
else:
return jsonify({'message': 'Incorrect email or password'}), 401
else:
return jsonify({'message': 'Incorrect email or password'}), 401

except Exception as e:
print(f"Query execution error: {e}")
return jsonify({'message': 'Login error'}), 500

finally:
cursor.close()
conn.close()



Подробнее здесь: https://stackoverflow.com/questions/791 ... n-error-re
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»