diff --git a/tools/auth.py b/tools/auth.py index 6f9b68f..7ed2db0 100644 --- a/tools/auth.py +++ b/tools/auth.py @@ -27,11 +27,21 @@ def authenticate_user(username, password): def authenticate_vk_user(vk_id, screen_name, first_name, last_name, profile_picture, email): user = User.query.filter_by(vk_id=vk_id).first() + if not user: + current_app.logger.debug(f"Creating a new VK user with ID: {vk_id}") user = User(username=screen_name, vk_id=vk_id, first_name=first_name, last_name=last_name, profile_picture=profile_picture, email=email, provider='vk') db.session.add(user) - db.session.commit() + + try: + db.session.commit() # Фиксируем транзакцию + current_app.logger.debug(f"New VK user created and committed to the database with ID: {user.id}") + except Exception as e: + current_app.logger.error(f"Failed to commit new VK user to the database. Error: {e}") + db.session.rollback() # Откатываем транзакцию в случае ошибки + return False + session['loggedin'] = True session['id'] = user.id session['username'] = user.username