@Lord_Kin
Начинающий программист на python и js

Почему не сохранятся информация в session?

# настройки 
app = Flask(__name__)

app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
app.config['PERMANENT_SESSION_LIFETIME'] = 3600

CORS(app, resources={r'/*': {'origins': '*'}}, supports_credentials=True)

def login_user(email, pas):

try:
    pg = psycopg2.connect("""
        host=localhost
        dbname=postgres
        user=postgres
        password=***
        port=5432
    """)


cursor = pg.cursor(cursor_factory=psycopg2.extras.DictCursor)
cursor.execute(f"SELECT COUNT(*) FROM users WHERE email=$${email}$$")

if cursor.fetchone()[0] == 1:
    print(1)
    cursor.execute(f"SELECT * FROM users WHERE email=$${email}$$")
    user = cursor.fetchone()
    if user[3] == pas: 
       
        session['id'] = user[0]
        session.modified = True
        return_data = f"Вход выполнен! Здравствуйте, {session['id']}"


    else: return_data = "Неверный пароль!"
else: return_data = "Аккаунта с такой почтой не существует!"
except (Exception, Error) as error:
    print(f'DB ERROR: ', error)
    return_data = f"Ошибка обращения к базе данных: {error}" 

finally:
    if pg:
        cursor.close
        pg.close
        print("Соединение с PostgreSQL закрыто")
        return return_data

@app.route('/login', methods=['GET', 'POST'])
def login():
    response_object = {'status': 'success'}
    if request.method == 'POST':
        post_data = request.get_json()
        print(login_user(post_data.get('user'), post_data.get('password')))
        return jsonify(response_object)

else:
    response_object['message'] = db_get()
    return jsonify(response_object)

# another decorator
@app.route('/user-info', methods=['GET', 'PUT'])
def user_info():
    response_object = {'status': 'success'}
    if request.method == 'PUT':
        print(session.get('id')) # None

Запррос, елси надо
async LogIn(){
            let response = await fetch(
            'http://127.0.0.1:5000/login',{
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify(this.form),
                credentials: "include"
                }).then((data) => {
                if (data.ok){
                    return data.json()
                } else{ 
                    console.error('HTTP status: '+ data.status)
                }
                console.log(data)
            })
        }

информация в сессии не сохраняется, так же как и куки файлы на сервере, на фронтеде сохраняется
660346193a350441846221.png
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы