Я новичок в flask, но в меру разбираюсь в python - у меня есть приложение flask, которое использует flask-security для аутентификации пользователя. Я хотел бы добавить некоторые дополнительные функции в процесс входа пользователя. В частности, мне нужно сохранить auth_token пользователя (который я настроил как одноразовый токен) в базу данных при входе в систему и удалить его при выходе из системы. Проблема возникает из-за того, что flask-security (насколько мне известно) не раскрывает механизм входа в систему непосредственно разработчику. Насколько я могу судить из кода, он импортирует flask-login, который использует функцию login_user.
Я начал с попытки переопределить эту функцию, импортировав flask.ext.login (что обычно мне не нужно было бы делать) и переопределив функцию следующим образом:
import flask.ext.login as a
def new_login_user():
...copy of existing function goes here...
...Plus new stuff with current_user.get_auth_token()...
a.login_user = new_login_user
однако я столкнулся со всевозможными проблемами с пространством имен, и это кажется действительно уродливым способом сделать это.
Я думал, что может быть способ сделать это с помощью декоратора, но я новичок в flask и, тем не менее, не часто использовал декораторы.
Есть идеи, как лучше всего подойти к этому? для контекста мне нужен auth_token в базе данных, потому что мне нужно передать аутентификацию веб-сайта другому процессу, который также обращается к базе данных. Другой процесс - это сервер API, использующий веб-сокеты. Я не хочу совмещать процессы.