ProtectedRoute Guardiões de Rota
Última atualização: 2026-11-03
ProtectedRoute Guardiões de Rota
Um guardião de rota verifica permissões antes que a página abra: envolva uma rota em ProtectedRoute, e quando o visitante não está logado ele redireciona para /login enquanto lembra a página de origem, para que possa ser enviado de volta após entrar. O React não traz um guardião nativo, então você o constrói a partir de renderização condicional mais Navigate ou useNavigate, e o guardião permanece um componente simples que você pode testar isoladamente.
| Grupo | Roteamento e Gerenciamento |
|---|---|
| Tipo | Padrão |
ℹ️ Informação O editor transpila JSX para JavaScript e renderiza a UI real na sandbox; os componentes são montados automaticamente — sem render manual.
📝 Sintaxe
import { Navigate, Outlet } from 'react-router-dom'
function ProtectedRoute({ isAuth }) {
if (!isAuth) {
// Not signed in: redirect to the login page and remember where we came from
return <Navigate to="/login" replace state={{ from: location.pathname }} />
}
return <Outlet /> // Signed in: render the child routes
}
// Usage:
// <Route element={<ProtectedRoute isAuth={user} />}>
// <Route path="/admin" element={<Admin />} />
// </Route>
⚙️ Parâmetros
| isAuth (custom) | A verificação de permissão: um booleano, um array de papéis ou um estado assíncrono — o que sua sessão fornecer. |
|---|---|
| redirect (custom) | Para onde vai um visitante rejeitado: um endereço de redirecionamento ou uma UI de aviso, desenhada conforme o projeto. |
Retorna:Sem valor de retorno; trata-se de um padrão de codificação, não de uma API chamável.
▶ Exemplo
O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.
Saída:
Clicar em "Admin" enquanto deslogado é bloqueado e cai na página de login; clicar em "Entrar e voltar" entra no painel administrativo — o fluxo de guardião de um redirecionamento Navigate mais o retorno após entrar (demonstração simulada).