Table of Contents
No Postman, como você testa as rotas da sua API REST ou as queries da sua API GraphQL que precisam de autenticação JWT? Você provavelmente cria uma rota/mutation para login e depois copia o token e coloca no header de authorization
, certo? Nesse post eu vou te mostrar como você pode fazer todo esse processo de forma automatizada, seja em uma API REST ou GraphQL 🚀
- Caso tenha algum problema, veja esta seção.
Criando variáveis
Primeiro, precisamos ter variáveis para usar como Bearer Token na requisição/mutation.
Criar uma variável é bem simples:
- Clique na sua collection criada (seu projeto) no Postman
- Vá para a seção variables e crie a variável:
Criando scripts
Primeiro, você precisa criar um request/mutation que seja responsável por retornar um token
que será utilizado. Por exemplo:
Agora na request/mutation, vá para a seção scripts
.
Script para query GraphQL
const url = 'http://localhost:3000/graphql';
const method = 'POST';
const header = {
'Content-Type': 'application/json',
};
const graphqlMutation = {
query: `
mutation UserSignIn($email: String!, $password: String!) {
userSignIn(input: {
email: $email,
password: $password
}) {
token
error {
field
message
}
}
}
`,
variables: {
email: 'postman_user@test.com',
password: 'pass123',
},
};
pm.sendRequest(
{
url,
method,
header,
body: {
mode: 'raw',
raw: JSON.stringify(graphqlMutation),
},
},
(err, res) => {
if (err) {
console.error(err);
return;
}
const response = res.json();
if (response.errors) {
console.error('GraphQL Errors:', response.errors);
} else if (response.data.userSignIn.error) {
console.error('Authentication Error:', response.data.userSignIn.error);
} else {
pm.collectionVariables.set('bearerToken', response.data.userSignIn.token);
}
},
);
Script para API Rest
let url = `http://localhost:3000/auth`;
let method = 'POST';
let header = {
'Content-Type': 'application/json',
};
let payload = {
login: 'seu_login',
password: 'sua_senha',
};
pm.sendRequest(
{
url,
method,
header,
body: {
mode: 'raw',
raw: JSON.stringify(payload),
},
},
(err, res) => {
if (err) {
console.log(err);
return;
}
pm.environment.set('bearerToken', res.json().access_token);
},
);
Mais algumas palavrinhas - troubleshooting e ajuda
- Tenha em mente que os requests foram feitos de acordo com o meu schema, adapte-o para o seu caso de uso.
- Você pode ver como eu adaptei para o meu projeto aqui
- Caso precise debuggar o próprio postman, você pode utilizar
Ctrl+Alt+C
para abrir o console - Caso precise de ajuda, você pode:
- Dar uma olhada neste post do Postman
- Comente aqui mesmo :)
- Entra em contato comigo em uma das minhas redes