Как правильно описать свой обработчик @login_required?
Приветствую!
Воюю с авторизацией на Flask. У меня есть функция:
def loginrequired(f):
def wrapper (*args, **kwargs):
# бла-бла-бла
return wrapper
которая работает как мне нужно, определяя token в заголовке запроса и работая с ним.
Я хочу, дабы эта функция вызывалась перед большинством обработчиков маршрутов, делаю так:
В этом случае функция отрабатывает по одному разу с каждым маршрутом при запуске проекта и всё. Если я переношу вызов таким образом:
@app.route('/main', methods=['POST'])
@loginrequired
@app.route('/projects', methods=['POST'])
@loginrequired
то получаю ошибку AssertionError: View function mapping is overwriting an existing endpoint function: wrapper.
Собственно два вопроса:
1. Как правильно сделать, чтобы при обращении по какому-либо маршруту вызывалась моя loginrequired() и по результатам проверки обрабатывался или нет маршрут?
2. Как из loginrequired() передать в обработчик маршрута какие-либо данные (объект или значение)?