Comandos GitHub: Guia Prático e Essencial para o Dia a Dia
Descubra como dominar os comandos essenciais do Git no GitHub para otimizar…
Se você precisa criar um mock de API com autenticação JWT, seja para testes ou desenvolvimento de front-end, este guia é para você. Vamos mostrar como configurar um servidor JSON usando json-server e JWT, passo a passo. Você pode clonar um repositório pronto ou seguir nossas instruções para criar o seu do zero.
Para começar rapidamente, clone o projeto do GitHub do santosqa no link abaixo:
Clonar projeto JSONServer com token JWT
Além disso, você pode utilizar o cliente Apidog, que já possui todas as requisições configuradas, acessando o link:
Se preferir, você também pode criar o seu próprio projeto seguindo os passos descritos no artigo. Seja qual for a sua escolha, você terá uma API mock funcional com autenticação JWT em pouco tempo.
Antes de começar, você precisará dos seguintes softwares instalados no seu sistema:
Verifique se o Node.js, NPM e Yarn estão instalados corretamente:
$ node –version
$ npm –version
$ yarn -v
code .
db.json
e server.js
na raiz do projeto incluindo os códigos abaixo:*// arquivo db.js
{ "users": [ { "id": 1, "username": "santosqa.com", "password": "santosqa@123" }, { "id": 2, "username": "user2", "password": "password2" } ], "posts": [ { "id": 1, "title": "Post 1", "author": "user1" }, { "id": 2, "title": "Post 2", "author": "user2" } ] }
*// arquivo server.json
const jsonServer = require('json-server');
const server = jsonServer.create();
const router = jsonServer.router('db.json');
const middlewares = jsonServer.defaults();
const bodyParser = require('body-parser');
const jwt = require('jsonwebtoken');
const SECRET_KEY = 'your-secret-key';
const expiresIn = '5m';
function createToken(payload) {
return jwt.sign(payload, SECRET_KEY, { expiresIn });
}
function verifyToken(token) {
try {
return jwt.verify(token, SECRET_KEY);
} catch (err) {
return false;
}
}
function isAuthenticated({ username, password }) {
const userdb = router.db.get('users').value();
return (
userdb.findIndex(
user => user.username === username && user.password === password
) !== -1
);
}
server.use(middlewares);
server.use(bodyParser.json());
server.use(bodyParser.urlencoded({ extended: true }));
server.post('/auth/login', (req, res) => {
const { username, password } = req.body;
if (!isAuthenticated({ username, password })) {
const status = 401;
const message =
'Ops! Parece que você digitou o Konami Code errado. Verifique o usuário e a senha!';
res.status(status).json({ status, message });
return;
}
const access_token = createToken({ username });
res.status(200).json({ access_token });
});
server.use((req, res, next) => {
if (req.path === '/auth/login') {
next();
} else {
if (
!req.headers.authorization ||
req.headers.authorization.split(' ')[0] !== 'Bearer'
) {
const status = 401;
const message =
'🚫 Erro no formato de autorização! Parece que você usou a magia errada. Verifique os feitiços (códigos) e tente de novo.';
res.status(status).json({ status, message });
return;
}
const token = req.headers.authorization.split(' ')[1];
const verified = verifyToken(token);
if (!verified) {
const status = 401;
const message =
'Token de acesso não fornecido ou inválido 🚫 A chave para o multiverso está faltando! 🔑🌌';
res.status(status).json({ status, message });
return;
}
next();
}
});
server.use(router);
server.listen(6000, () => {
console.log(
'🎉 Boa! Seu JSON-Server está vivo e chutando na porta 6000! 🚀 Vamos codar como se não houvesse amanhã! 🖥️'
);
});
yarn init -y
npm install json-server
yarn add json-server jsonwebtoken body-parser
package.json
conforme referência abaixo, para garantir as versões corretas:"dependencies": { "json-server": "^0.16.3", "jsonwebtoken": "^8.5.1", "body-parser": "^1.19.0" }
yarn install
node server.js
Pronto! Agora você tem um servidor JSON com
Após iniciado o servidor, você pode acessar os endpoints da API utilizando qualquer cliente HTTP.
Neste link do Apidog estão alguns exemplos de como utilizar a API: https://santosqa.apidog.io
/auth/login
com as credenciais de usuário.curl
: curl -X POST -d '{"username":"santosqa.com", "password":"santosqa@123"}' -H "Content-Type: application/json" http://localhost:6000/auth/login
curl -H "Authorization: Bearer <token>" http://localhost:6000/users
username
e password
no corpo da solicitação. Retorna um token de acesso JWT válido.Aprenda programação do básico ao avançado na Rocketseat e acelere sua evolução. Acesse agora: Desenvolva Sites e Aplicações na Rocketseat
Domine todas as habilidades de um Profissional de Testes e Qualidade de Software e se antecipe às grandes oportunidades do mercado de desenvolvimento de software. Inscreva-se: Treinamento para QA – Testes e Automação em Qualidade de Software
Descubra como dominar os comandos essenciais do Git no GitHub para otimizar…
Você como Desenvolvedor ou QA em um cenário que demanda de conhecimentos…
Então vamos lá, neste artigo, descrevo minha experiência referente a Cataline e…
Descubra como dominar os comandos essenciais do Git no GitHub para otimizar seu fluxo de…
Você como Desenvolvedor ou QA em um cenário que demanda de conhecimentos técnicos e mão…
Então vamos lá, neste artigo, descrevo minha experiência referente a Cataline e o Bootcamp programador full…