1

我已经声明了自己的安全管理器,并且在其中我试图使用before_request来检查,然后如果应用程序的会话已过期,则重定向到登录页面。但是,每次会话过期并且之前的请求运行并尝试重定向应用程序时,我都会收到 ERR_TOO_MANY_REDIRECTS 错误。我理解为什么有太多的重定向(因为每个请求的前请求重定向),所以我尝试了诸如after_this_request 之类的替代方法,但这会返回相同的结果。我确信我的问题在于使用之前的请求,但是到目前为止我还没有遇到替代解决方案。

以下是我尝试过的众多代码组合之一:

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

4

0 回答 0