Menyelesaikan isu ubah hala dengan perisian tengah pengesahan Slim 4
P粉949848849
P粉949848849 2023-08-13 12:04:52
0
1
587
<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粉949848849
P粉949848849

membalas semua(1)
P粉278379495

Ternyata ini kerana saya tidak minum kopi yang cukup semasa saya menulis kod ini. Saya terlupa untuk menetapkan tindak balas bermutasi kepada pembolehubah.
Di dalam pernyataan if saya sepatutnya:

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

"$respons =" di baris kedua ialah bahagian yang saya terlepas.
Harap ini membantu orang lain.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan