Laravel 11, o Auth e o Redirecionamento
Publicado em: 12/04/2024 às 13:24:16
A partir do Laravel 11 comecei a encontrar problemas de redirecionamento na autenticação.
Comecei a achar que, a partir da versão 11, não teria mais acesso ao redirecionamento de forma fácil e que eu seria refém do redirect padrão para uma rota "home" ou "dashboard".
Mas achei errado!
As Middlewares trocaram de lugar, mas um projeto desse tamanho não ia cometer esse erro.
Foi então que encontrei a saída em Illuminate\Foundation\Configuration\Middleware em duas funções mágicas:
redirectGuestsTo e redirectUsersTo
A primeira redireciona o visitante não logado (que está tentando logar) para uma rota específica.
A segunda redireciona o usuário logado (que está tentando logar novamente) para uma rota específica.
Use no arquivo bootstrap/app.php da seguinte forma:
Altere /login e /admin como for necessário para seu projeto.
Espero ter ajudado.
[]'s
Comecei a achar que, a partir da versão 11, não teria mais acesso ao redirecionamento de forma fácil e que eu seria refém do redirect padrão para uma rota "home" ou "dashboard".
Mas achei errado!
As Middlewares trocaram de lugar, mas um projeto desse tamanho não ia cometer esse erro.
Foi então que encontrei a saída em Illuminate\Foundation\Configuration\Middleware em duas funções mágicas:
redirectGuestsTo e redirectUsersTo
A primeira redireciona o visitante não logado (que está tentando logar) para uma rota específica.
A segunda redireciona o usuário logado (que está tentando logar novamente) para uma rota específica.
Como usar redirectGuestsTo e redirectUsersTo
Simples!Use no arquivo bootstrap/app.php da seguinte forma:
<?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->redirectGuestsTo('/login');
$middleware->redirectUsersTo('/admin');
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();
Altere /login e /admin como for necessário para seu projeto.
Espero ter ajudado.
[]'s