在检查会话是否仍处于活动状态后,如何重定向我的FLASK应用程序?

时间:2019-05-28 13:25:49

标签: session flask flask-appbuilder

我已经声明了自己的安全管理器,并且在其中我试图使用 before_request 进行检查,然后在会话已过期的情况下重定向至登录页面。但是,每次会话过期并且运行before请求并尝试重定向应用程序时,我都会收到ERR_TOO_MANY_REDIRECTS错误。我知道为什么重定向太多(因为每个请求的请求之前重定向),所以我尝试了诸如 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

0 个答案:

没有答案