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+Cpara 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
 
 
 
              

 
    
Top comments (0)