Proteção de rotas com middleware
Use middleware de autenticação e visitante para proteger rotas e redirecionar usuários.
Proteção de rotas com middleware é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
O que é um middleware?
Middleware é um código executado antes ou depois que uma solicitação HTTP chega ao controlador. Ele é usado para autenticação, registro, CORS, limitação de taxa etc.
Middleware integrado de autenticação
O middleware auth redireciona usuários não autenticados para a página de login (ou retorna 401 para solicitações de API).
<?php
Route::get("/dashboard", [DashboardController::class, "index"])
->middleware("auth");Aplicando middleware a grupos
Proteja um grupo inteiro de rotas de uma só vez.
<?php
Route::middleware(["auth", "verified"])->group(function () {
Route::get("/dashboard", [DashboardController::class, "index"]);
Route::get("/profile", [ProfileController::class, "show"]);
});Middleware guest
O middleware guest redireciona usuários autenticados para longe das páginas de login e registro.
<?php
Route::middleware("guest")->group(function () {
Route::get("/login", [LoginController::class, "create"]);
Route::get("/register", [RegisterController::class, "create"]);
});Criando middleware personalizado
Gere-o com o Artisan e implemente o método handle().
$ php artisan make:middleware EnsureSubscribedLógica de middleware personalizado
Retorne a próxima solicitação para continuar ou retorne uma resposta para interromper o processamento.
<?php
public function handle(Request $request, Closure $next): Response
{
if (!$request->user()?->isSubscribed()) {
return redirect("/subscribe");
}
return $next($request);
}Registrando middleware
Registre os aliases de middleware em app/Http/Kernel.php (Laravel 10) ou bootstrap/app.php (Laravel 11+).
<?php
// Laravel 11+ bootstrap/app.php:
->withMiddleware(function (Middleware $m) {
$m->alias(["subscribed" => EnsureSubscribed::class]);
})Parâmetros de middleware
Passe parâmetros para o middleware usando dois-pontos.
<?php
Route::middleware("role:admin")->group(function () {
// ...
});
// In middleware handle():
public function handle(Request $request, Closure $next, string $role): ResponseMiddleware posterior
O código após $next($request) é executado depois que a resposta é gerada — útil para registro e modificação da resposta.
<?php
public function handle(Request $request, Closure $next): Response
{
$response = $next($request); // controller runs here
$response->headers->set("X-App", "Laravel");
return $response;
}Prioridade do middleware
A ordem em que os middlewares são executados é importante. O middleware global (como TrimStrings) é executado antes do middleware de rota.
Middleware de limitação
O Laravel inclui limitação de taxa por meio do middleware throttle.
<?php
Route::middleware("throttle:60,1")->group(function () {
// 60 requests per 1 minute
});Resumo
O middleware filtra solicitações HTTP. Aplique auth para proteger rotas, crie middleware personalizado para regras de negócio e agrupe rotas para compartilhar middleware de forma organizada.
Verificação rápida
O que o middleware auth faz com usuários não autenticados?
Perguntas Frequentes
A aula “Proteção de rotas com middleware” é grátis?
Sim — o texto completo de “Proteção de rotas com middleware” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Proteção de rotas com middleware”?
Use middleware de autenticação e visitante para proteger rotas e redirecionar usuários. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Proteção de rotas com middleware”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Autenticação com Laravel Breeze
- Proteção de rotas com middleware
- Gates: verificações simples de autorização
- Políticas: autorização baseada em modelos