我试图在未通过身份验证时将用户重定向到登录页面。我在 Slim3 中使用中间件来检查 Sentinel。有效,但我需要覆盖正文以不显示内容。例如,我可以使用 CURL 访问 /users 之类的路由,然后我可以获取所有页面。因此,如果用户未通过身份验证,我需要删除/覆盖正文。
public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next)
{
$route = parse_url($request->getUri(), PHP_URL_PATH);
if ($route !== '/login' && ! $user = Sentinel::check() )
{
$response = $response
->withStatus(301)
->withHeader("location", '/login')
;
}
return $next($request, $response);
}