我已经声明了自己的安全管理器,并且在其中我试图使用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