Я пытаюсь реализовать простую проверку подлинности на основе сеанса следующим образом:
@app.route("/home")
def home():
if session.get('userID') is None:
return redirect(url_for('login'))
return render_template('home.html', uname = session['user'], userID = session['userID'])
Это работает, но я хочу извлечь проверку в свою собственную функцию и вызвать ее множественными маршрутами, пытаясьдержите код СУХОЙ.Когда я заменяю
if session.get('userID') is None:
return redirect(url_for('login'))
на auth_check()
и перемещаю чек на
def auth_check()
if session.get('userID') is None:
return redirect(url_for('login'))
, оставляя меня с
@app.route("/home")
def home():
auth_check()
return render_template('home.html', uname = session['user'], userID = session['userID'])
, я получаю ключевую ошибку наимена сеансов, когда я загружаю страницу без сеанса, когда я хочу, чтобы она просто перенаправляла, как это происходит со встроенным кодом.Как-то связано с тем, как Flask обрабатывает маршруты?Не такая уж крупная сделка, но кажется ответом, который подкрепляется хорошими принципами для дальнейшего использования.