Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvidas sobre a FetchAPI

Tem alguns pontos que não ficaram claros pra mim, e se alguém puder esclarecer, fico grato. O que não ficou claro são os seguintes pontos:

1. De onde vem o comando fetch? a) nativo do JS, ou seja, já está no navegador; b) da jQuery que já está no código, neste caso a partir de que versão; c) de alguma das libs baixadas de um dos CDNs que também já estão no código; d) outro?

2. Preciso de uma aplicação onde as páginas fiquem protegidas, e somente usuários logados podem acessar. No curso as páginas são .html: a) é possível usar fetchAPI protegendo as páginas .html de acesso público (sem usar .htaccess); Como? b) neste caso deve-se usar a fetchAPI em conjunto com outro Framework frontend (ou backend?) que deverá proteger essas URLs ; c) outro?

Desde já, meu muito obrigado!

Abraço.

3 respostas

Fala ai Eduardo, tudo bem? Vamos lá:

De onde vem o comando fetch?

O fetch é uma função global do JavaScript, ele é disponibilizado pela engine do JavaScript que todo navegador (browser) possuí.

Preciso de uma aplicação onde as páginas fiquem protegidas, e somente usuários logados podem acessar. No curso as páginas são .html

Isso pode ser feito de N maneiras, o que você pode fazer é assim que sua página for carregada, você bate em uma API com a fetch e verifica o retorno, se o retorno está ok, deixa ele visualizar o conteúdo.

Mas, também poderia ser feito com um servidor, nesse caso o back iria retornar os dados para o front somente quando o usuário tem acesso (mais seguro do que controlar no navegador).

Espero ter ajudado.

Correto. Minha API, já faz a autenticação no backend e através do token só traz os resultados se o usuário tiver as permissões corretas.

Mas se eu digito o endereço da página, sem estar logado, o navegador acessa a página. Só não trás os dados da aplicação pois não está autenticado.

Usando a primeira abordagem sugerida, onde eu colocaria a lógica de forma segura?

Eu queria saber se há algo que seja uma boa prática usando fetch em páginas protegidas. Ou se o fetch é uma abordagem para páginas abertas?

Em outras palavras, usando fetch (leia-se JS puro) existem boas praticas ou ferramentas para aplicações com páginas protegidas, como o Spring Secutity, por exemplo, onde é possível configurar quais páginas ficarão expostas?

Mais uma vez, agradeço sua atenção.

solução!

Fala Eduardo, com JS puro é um pouco mais complicado, você iria precisar criar um gerenciamento de rotas e apenas carregar o conteúdo da página via fetch.

Normalmente em aplicações React, Angular ou Vue, existem suporte para trabalhar com rotas e podemos adicionar guardiões para essas rotas (cada um de maneira diferente).

Uma vez que a rota possa ser carregada, o conteúdo seria renderizado dinamicamente através de requisições e manipulações do DOM.

Normalmente são as famosas SPA's.

Espero ter ajudado.