我一直在测试新的Slim 4框架,并且重定向对于我在普通类中正常工作,但是我似乎无法使它们在中间件中正常工作,在中间件中,请求处理程序会动态生成(显然吗?)响应。当我尝试使用Location标头重定向时,它根本无法重定向,并且我的路线继续到原始位置。
这是我的身份验证中间件的基本版本,用于测试:
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
class AuthMiddleware extends Middleware {
public function __invoke(Request $request, RequestHandler $handler): Response {
$response = $handler->handle($request);
$loggedInTest = false;
if ($loggedInTest) {
echo "User authorized.";
return $response;
} else {
echo "User NOT authorized.";
return $response->withHeader('Location', '/users/login')->withStatus(302);
}
}
}
有人有这个工作吗?如果是这样,您是如何做到的?预先感谢。
[好,我是个白痴。