Как извлечь аутентификацию для отдельной функции? - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь реализовать простую проверку подлинности на основе сеанса следующим образом:

@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 обрабатывает маршруты?Не такая уж крупная сделка, но кажется ответом, который подкрепляется хорошими принципами для дальнейшего использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...