Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

autenticação de rotas

eu queria saber como posso fazer autenticação de rotas e se tem algum vídeo ensinando como fazer.

2 respostas
solução!

Opa!

Posso te dar um spoiler que tem um curso em desenvolvimento que vai tratar disso. Enquanto ele não sai, posso te dar umas dicas relacionadas ao tema.

Você pode, por exemplo, criar um componente que encapsula essa lógica, alguma coisa assim:

import { ReactElement } from "react";
import { Navigate, useLocation } from "react-router-dom";

interface Props {
    children: ReactElement
}

export const RequerAutenticacao = ({ children }: Props) => {
    const token = sessionStorage.getItem("token");
    const location = useLocation();

    if (!token) {
        return <Navigate to="/" state={{ from: location }} />
    }

    return children;
};

E então as rotas do alurabooks ficariam assim:

const Rotas = () => {
    return (<Routes>
      <Route path='/' element={<PaginaBase />}>
        <Route path='/' element={<Home />} />
        <Route path='/minha-conta' element={<RequerAutenticacao><AreaLogada /></RequerAutenticacao>}>
            <Route path="pedidos" element={<Pedidos />} />
         </Route>
      </Route>
    </Routes>)
}

export default Rotas

Muito obrigado professor! já apliquei ao meu projeto