Сессионный файл 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
Flask-Login не устанавливает файлы cookie аутентификации после успешного входа в систему ⇐ Python
Программы на Python
1733139955
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'
Подробнее здесь: [url]https://stackoverflow.com/questions/79243860/flask-login-does-not-set-authentication-cookies-after-successful-login[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия