首页 > 解决方案 > 是否可以在中间件类中重定向?

问题描述

class Middleware:
    def __init__(self, app):
        self.app = app


    def __call__(self, environ, start_response):
        request = Request(environ)
        cookies = request.cookies
        path = request.path
        

        if not isAuthenticated(cookies):
            #Redirect to /login

        return self.app(environ, start_response)

所以我有一个Middleware类应该cookies从中获取request,然后将其发送到一个函数isAuthenticated,如果该函数返回我需要重定向到页面,则该函数返回TrueFalse现在返回,这可能吗?即使我没有对象,我只有?False/loginrequestenviron

标签: pythonflask

解决方案


没有把握。因为 WSGI 中间件位于应用程序本身之外的一层。

您可以使用其他钩子在应用程序/请求上下文中工作。在这种情况下你可以使用flask.requestflask.redirect()等等。顺便说一下,你不需要初始化请求(request = Request (Environment))。


推荐阅读