Go back

Automatizando requisições que exigem autenticação no Postman com pre-requests

2025-05-20 21:52 - 2025-06-11 02:14 (c531ab6), 2 min read
#webdev , #tutorial , #pt-br

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 🚀



Criando variáveis

Primeiro, precisamos ter variáveis para usar como Bearer Token na requisição/mutation.

Criar uma variável é bem simples:

  1. Clique na sua collection criada (seu projeto) no Postman
  2. Vá para a seção variables e crie a variável:

bla

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: