recherche

Maison  >  Questions et réponses  >  le corps du texte

Résoudre les problèmes de redirection avec le middleware d'authentification Slim 4

<p>我正在尝试使用中间件将未经身份验证的用户重定向到Google API身份验证。 如果我直接访问身份验证系统(通过访问/auth路由),Google部分可以工作,并且用户会被发送到我的主页。但是,如果我访问受中间件保护的页面,我会得到一个空白页面。</p><p> 这是我的中间件:</p> <pre class="brush:php;toolbar:false;"><?php declare(strict_types=1); namespace AppMiddleware; use SlimPsr7Response; use PsrHttpMessageServerRequestInterface as Request; use PsrHttpServerRequestHandlerInterface as RequestHandler; class Auth { public function __invoke(Request $request, RequestHandler $handler): Response { if (!isset($_SESSION['access_token'])) { $response = new Response(); $response->withHeader('Location', '/auth')->withStatus(302); } else { $response = $handler->handle($request); } return $response; } }</pre> <p>由于Google部分可以工作,问题肯定在我的中间件中,对吗?这也意味着中间件的else部分是起作用的。 有什么建议吗?</p><p> TIA</p>
P粉949848849P粉949848849550 Il y a quelques jours628

répondre à tous(1)je répondrai

  • P粉278379495

    P粉2783794952023-08-14 00:35:56

    Il s'avère que c'est parce que je n'ai pas bu assez de café lorsque j'ai écrit ce code. J'ai oublié de définir la réponse mutée sur une variable.
    Dans ma déclaration if, cela devrait être :

    $response = new Response();                                                                                                                                                                                                                    
            $response = $response->withHeader('Location', '/auth')->withStatus(302);

    Le "$response =" dans la deuxième ligne est la partie que j'ai manquée.
    J'espère que cela aide les autres.

    répondre
    0
  • Annulerrépondre