Estou testando uma implementação de segurança baseada em token JWT, com base no artigo a seguir . Recebi com sucesso um token do servidor de teste. Não consigo descobrir como o programa Chrome POSTMAN REST Client envia o token no cabeçalho.
Minhas perguntas são as seguintes:
1) Estou usando o nome do cabeçalho certo e / ou a interface POSTMAN?
2) Preciso basear 64 codificar o token? Eu pensei que poderia apenas enviar o token de volta.
Respostas:
Para o nome do cabeçalho da solicitação, use Autorização. Coloque o Portador antes do Token. Eu apenas tentei e funciona para mim.
Autorização: portador TOKEN_STRING
Cada parte do JWT é um valor codificado em base64url.
fonte
Aqui está uma imagem, se ajudar :)
Atualizar:
A equipe do carteiro adicionou "token do portador" à "guia autorização":
fonte
Estou adicionando a esta pergunta uma dica interessante que pode ajudar vocês a testar o JWT Apis.
É realmente muito simples.
Quando você efetua login, em sua API (ponto de extremidade de login), você receberá imediatamente seu token e, como @ mick-cullen disse, terá que usar o JWT no cabeçalho como:
Agora, se você deseja automatizar ou apenas facilitar sua vida, em seus testes, você pode salvar o token como um global que pode chamar em todos os outros pontos de extremidade como:
No Postman: Em seguida, faça uma variável Global no postman como jwt_token = TOKEN_STRING.
No terminal de login: Para torná-lo útil, adicione no início da guia Testes e adicione:
Suponho que sua API esteja retornando o token como json na resposta como: {"jwt_token": "TOKEN_STRING"}, pode haver algum tipo de variação.
Na primeira linha, você adiciona a resposta à variedade de dados. Limpe seu Global e atribua o valor.
Portanto, agora você tem seu token na variável global, o que facilita o uso da Autorização: Portadora {{jwt_token}} em todos os seus pontos de extremidade.
Espero que esta dica ajude.
EDITAR
Algo para ler
Sobre testes no Postman: exemplos de testes
Linha de Comando: Newman
CI: integração com Jenkins
Bom post no blog: master api test automation
fonte
Test
guia e da codificação Postman. Existe um recurso que você recomenda para começar com isso?Eu tive o mesmo problema
Flask
e depois de tentar as 2 primeiras soluções iguais (Authorization: Bearer <token>
) e obter o seguinte:Consegui finalmente resolvê-lo usando:
Achei que poderia economizar algum tempo para as pessoas que encontrarem a mesma coisa.
fonte
Authentication credentials were not provided
emdjango
usarBearer <token>
. resolvido comjwt <token>
. Obrigado pela soluçãoAqui está como definir o token automaticamente
Em sua solicitação de login / autenticação
Em seguida, para página autenticada
fonte
Se você deseja usar o carteiro, o caminho certo é usar os cabeçalhos como tal
chave: autorização
valor: jwt {token}
tão simples como isso.
fonte
Para pessoas que estão usando o plugin wordpress Advanced Access Manager para abrir a autenticação JWT.
O campo Cabeçalho deve colocar autenticação em vez de autorização
A AAM mencionou isso em sua documentação ,
Espero que ajude alguém! Obrigado por outras respostas também me ajudou muito !!
fonte
Feito!
fonte
Tudo o resto, ie. Parâmetros, Autorização, Corpo, Script de pré-solicitação, Testes está vazio, basta abrir a guia Cabeçalhos e adicionar como mostrado na imagem. É o mesmo para a solicitação GET também.
fonte
De alguma forma, o carteiro não funcionou para mim. Eu tive que usar uma extensão do Chrome chamada RESTED que funcionou.
fonte
Fiz como o moplin mencionou. Mas, no meu caso, o serviço envia o JWT nos cabeçalhos de resposta, como um valor na chave "Autorização".
O que eu fiz foi criar uma variável global no carteiro como
na solicitação de login-> guia Testes, adicione
em outras solicitações, selecione a guia Cabeçalhos e forneça
fonte
Na versão mais recente do Postman (7 ++), pode haver um campo Portador na autorização. Então, vá para a guia Cabeçalho
selecione a chave como Autorização e, no valor, escreva JWT
fonte
Bearer Token
auxiliar naAuthorization
guia, adicionando o valor do token aqui (codificado permanentemente ou como uma variável dinâmica) criará o mesmoAuthorization
cabeçalho para a solicitação.