-
Ao clicar em "Cadastrar", inserção da máquina google.com de IP 8.8.8.8.
-
Teste de ping para 8.8.8.8 (Google).
-
Resultado da resposta do ping no browser.
-
Adicionado o PRISMA ORM ao projeto (diretório prisma/)
-
Dentro do
prisma/há o seguinte:migrations/: scripts de configuração do DB gerado automaticamente pelo Prisma- O
dev.dbé o DB SQLite usado no momento da modificação (para usar outro banco, basta modificarDATABASE_URLno arquivo.enve noprisma/schema.prismamodificar o seguinte trecho:datasource db { provider = "mysql" url = env("DATABASE_URL") }
- Para mais detalhes: https://www.prisma.io/docs/orm/overview/databases/mysql
- O arquivo
prisma/seed.jsé o script que adicionará os dados iniciais no DB - Para gerar uma nova migração, caso altere algo no
prisma/schema.prisma, utilizar o comando:npx prisma migrate dev --name init - Rodando isto, ele também executa o script
prisma/seed.js - Caso não execute, é só rodar o comando:
npx prisma db seed
-
Movido os arquivos do front-end para o diretório
/public -
O back-end ficou dentro do diretório
/src- Dentro do back-end há lógicas de hash de senha:
src/core/hash.js - Cliente Prisma ORM para interação com DB:
src/core/prisma.js - Variavéis de ambiente que estão no
.envestão organizadas emsrc/core/config.js - Middleware para proteger as rotas por falta de token JWT, ou seja, só poderão usar uma rota da API se estiveram devidamente logados com um token válido:
src/middleware/auth.js(vide as rotasrouter.get('/users', isAuthenticated, async (req, res) =>, onde oisAuthenticatedestará definido) - Todas as rotas foram separadas em seus devidos arquivos em
src/routes - O arquivo
main.jsé o arquivo principal do servidor
- Dentro do back-end há lógicas de hash de senha:
-
No front-end, para logar o usuário com as novas lógicas, foi criado um arquivo em
public/js/auth.js. Aqui está a lógica de login do usuário, obtendo erros vindos diretamento do back-end: se o usuário for logado, salva o token, id e username no localStorage -
O arquivo
public/js/auth.jssubstitui opublic/js/main.js -
O arquivo
public/js/api.jsfoi modificado e agora não precisa doBASEURL, basta passar o caminho normal que irá funcionar, e o projeto agora é Server Side Rendering (SSR), ou seja, tudo é carregado no lado do servidor -
Uma nova interação adicionada com back-end no arquivo
public/js/api.js:export const currentUser = async () => { const response = await fetch('/users/me', { headers: { 'Authorization': `Bearer ${localStorage.getItem('jiltoken')}` } }); return response.json(); }
-
Se o usuário estiver devidamente autenticado com token JWT válido, fará uma requisição no back-end e pegará os dados do usuário, trazendo id e username
-
Isso é executado no
public/js/auth.jsna linha 36 -
Para deslogar o usuário, foi criado o arquivo
public/js/logout.jse inserido no arquivojil.html: quando o usuário clicar emSair do JIL, ele removerá os dados do usuário e o token de acesso do localStorage -
Isto também redireciona o usuário para a página de login
-
Todo o projeto foi reorganizado para funcionar com Express
-
Para testar: antes de tudo, se estiver sem o
node_modules, execute o comando dentro da raiz do projetonpm ipara instalar as dependências do projeto -
Para todo o projeto funcionar, execute
npm run starte abra o linkhttp://locahost:3000
npx prisma migrate dev --name init + npm install ping + npm run start
As pastas node_modules e migrations e o arquivo dev.db devem ser removidos para forçar atualizações!
- DATABASE_URL="file:./dev.db"
- SECRET_KEY="ad51eb89-2944-4861-b9a7-8ae46b4a2d06"
- Igor Oliveira:
igor.teixeira@academico.ifpb.edu.br - Júlio Araújo:
julio.estrela@academico.ifpb.edu.br - Lucas Costa:
lucas-costa.lc@academico.ifpb.edu.br




