Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Rotas com permissões

Olá, primeiramente peço desculpas por essa pergunta pois o assunto não foi abordado no curso, mas tenho uma duvida e queria muita a ajuda de vocês com permissões de rotas pois sou iniciante com React. Supondo que estou consumindo uma API REST e nela consigo me autenticar usando o JWT. Além disso, a aplicação front-end possui varios tipos de usuarios, por exemplo administrador, moderador e visitante, assim, como faço para liberar uma rota específica para cada tipo de usuário? Por exemplo área do administrador, do moderador e do visitante... Peço que se tiver algum código que tenha esse exemplo de implementação eu agradeceria muito.

5 respostas
solução

Fala ai Michael, tudo bem? Acho que você pode trabalhar com um componente privado para rotas, no caso, poderia criar um: PrivateRoute e além do componente à ser redenrizado + a rota, você passa as roles, algo assim:

<PrivateRoute path="/admin" roles={['admin']} component={Admin} />

Depois, dentro do PrivateRoute você recebe esse array de roles e verifica se o seu usuário possuí alguma delas:

const PrivateRoute = ({ roles }) => roles.includes(ROLE_DO_USUARIO) ? ... : ...

Espero ter ajudado.

Ah entendi!! Agora, como eu faria para armazenar a role do usuário que eh retornado na resposta junto ao token na autenticação? Eu posso armazenar a role no localStoragem.setItem() e recuperar posteriormente ? Isso não é boa prática ou existe outra forma melhor?

Fala ai Michael, tudo bem? Você pode armazenar de N maneiras, seja no Local Storage, Session Storage, Cookies, Redux ou API.

Vai depender do que seja ideal para o seu contexto.

Espero ter ajudado.

Obrigado pelas dicas Matheus!

Magina Michael, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.