Как перенаправить мое приложение FLASK после проверки того, что СЕССИЯ все еще АКТИВНА? - PullRequest
0 голосов
/ 28 мая 2019

Я объявил свой собственный менеджер безопасности, и внутри него я пытался использовать before_request , чтобы проверить, а затем перенаправить на страницу входа в систему, если сеанс истек для приложения.Однако каждый раз, когда сеанс истекает, а запрос before выполняется и пытается перенаправить приложение, я получаю ошибку ERR_TOO_MANY_REDIRECTS.Я понимаю, почему существует слишком много перенаправлений (потому что запрос before перенаправляет для каждого сделанного запроса), поэтому я пробовал альтернативы, такие как after_this_request , но это возвращает тот же результат.Я убежден, что моя проблема заключается в использовании запроса before, однако пока я не нашел альтернативного решения.

Ниже приведена одна из многих комбинаций кода, которые я пробовал:

def before_request(self):
        logging.error(session)
        if 'oauth' not in session:
            logging.error("Stopping")
            redirect_url = request.url_root.strip('/') + self.appbuilder.get_url_for_login
            return redirect('https://.../logout redirect_uri=' + quote(redirect_url))
            @after_this_request
            def relogin(response):
                if not current_user.is_authenticated():
                    logging.error("Not Authorized")

                return response
        else:
            logging.error(session['oauth'])

        g.user = current_user

...