찾다

 >  Q&A  >  본문

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粉949848849467일 전578

모든 응답(1)나는 대답할 것이다

  • P粉278379495

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

    이 코드를 작성할 때 커피를 충분히 마시지 않았기 때문인 것으로 밝혀졌습니다. 변수에 대한 변형된 응답을 설정하는 것을 잊었습니다.
    내 if 문 안에는 다음과 같아야 합니다:

    으아아아

    두번째 줄의 "$response =" 부분이 제가 놓친 부분이에요.
    이것이 다른 사람들에게 도움이 되기를 바랍니다.

    회신하다
    0
  • 취소회신하다