Flask-Login не устанавливает файлы cookie аутентификации после успешного входа в системуPython

Программы на Python
Ответить
Anonymous
 Flask-Login не устанавливает файлы cookie аутентификации после успешного входа в систему

Сообщение Anonymous »

Сессионный файл cookie (сеанс) не устанавливается в ответе сервера, в результате чего пользователь не распознается как вошедший в систему на других маршрутах.
Код:
Вход маршрут:
@auth_bp.route('/login', methods=['POST'])
def login():
data = request.json
if "login" in data and "password" in data:
res = login_user_service(data['password'], login=data['login'])
return redirect(url_for('auth.protected'))

elif "email" in data and "password" in data:
res = login_user_service(data['password'], email=data['email'])
return redirect(url_for('auth.protected'))

else:
return jsonify({'error': 'No valid credentials'})

служба входа:
def login_user_service(password, login=None, email=None):
print(password, login, email)
if login:
# Ищем пользователя по логину
user = User.query.filter_by(login=login).first()
print(user)

elif email:
user = User.query.filter_by(email=email).first()

else:
return {"error": "No login or email provided"}

if user:
print()
if bcrypt.check_password_hash(user.password, user.salt+password):
load_user(user)
return {"message": "Login successful"}
return {"error": "Invalid credentials"}

менеджер входа:
@login_manager.user_loader
def load_user(user_id):
return User.query.filter_by(user_id=user_id).first()

Вот как я вызываю login_user:
if user and bcrypt.check_password_hash(user.password, user.salt + password):
login_user(user.user_id)
return {"message": "Login successful"}

Убедился, что SECRET_KEY установлен и настройки сеанса настроены:
app.secret_key = 'my_secret_key'
app.config\['SESSION_COOKIE_SECURE'\] = False
app.config\['SESSION_COOKIE_HTTPONLY'\] = True
app.config\['SESSION_COOKIE_SAMESITE'\] = 'Lax'


Подробнее здесь: https://stackoverflow.com/questions/792 ... sful-login
Ответить

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

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

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

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

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