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
Top comments (0)