Пожалуйста, отредактируйте свой вопрос, чтобы добавить трассировку ошибок и ваш код для полноты.
У меня есть приблизительные предположения, основанные на поведении, которое вы упоминаете. У вас должна быть функция обратного вызова user_loader, которую вы используете, чтобы получить пользователя перед использованием login_user(user)
. В зависимости от вашей реализации эта функция может загружать пользователя из базы данных или из словаря памяти или списка
Весьма вероятно, что у вас нет обработки исключений в случае, если пользователь не существует для Например, если вы загружаете из словаря, ваш код должен выглядеть, как показано ниже.
@login_manager.user_loader
def load_user(userid):
try:
user = users[userid]
return user
except KeyError:
return None
Приведенный выше код обрабатывает исключение и возвращает None
в случае, если пользователь не существует. Вот почему flask-login
сможет решить НЕ входить в систему вашего пользователя, пока ваша программа не вернет ошибку.