Autenticação

Verify oferece suporte a dois tipos de autenticação:

Quando se deve usar a autenticação básica ou o JWT?

A versão V2 do Verify oferece suporte a dois métodos de autenticação: autenticação básica e autenticação JWT Bearer. É importante compreender as diferenças entre eles para garantir uma migração tranquila e aproveitar ao máximo os recursos da versão V2.

Você pode usar qualquer uma das opções, mas não as duas ao mesmo tempo. Em geral, recomendamos o uso do JWT autenticação ao trabalhar com a API Verify. Embora a autenticação básica seja mais fácil para quem está começando, ela não oferece suporte à Autenticação silenciosa canal.

Método Compatível É necessário ter o aplicativo da Vonage Callbacks/Webhooks Suporte para o ACL Recomendado para
Autenticação básica Testes rápidos / POC
JWT Bearer Produção

Autenticação básica

A autenticação básica envia sua chave de API e seu segredo de API Codificado em Base64 no Authorization cabeçalho. Você pode encontrar essas credenciais em seu Configurações da API no Painel da Vonage.

Essa é a maneira mais simples de começar a usar o Verify V2, já que não é necessária nenhuma configuração do aplicativo da Vonage, e suas credenciais ficam imediatamente disponíveis no Painel do Vonage.

Como funciona

Authorization: Basic <base64(api_key:api_secret)>

Atenção: a chave e o segredo da API são informações confidenciais! Se você as divulgar publicamente (código do front-end, repositórios do GitHub etc.), qualquer pessoa poderá fazer uso indevido da sua Account.

Criar o cabeçalho da solicitação

  • Primeiro, concatene sua chave de API e seu segredo: API_KEY:API_SECRET.
  • Então, Codificação Base64 o resultado. Saiba mais aqui.
  • Por fim, envie-o na solicitação da seguinte forma: Authorization: Basic BASE64_ENCODED_STRING.

Você pode fazer isso no código do seu aplicativo — por exemplo, em JavaScript:

const credentials = btoa('YOUR_API_KEY:YOUR_API_SECRET');

const response = await fetch('https://api-eu.vonage.com/v2/verify', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Basic ' + credentials
  },
  body: JSON.stringify({ ... })
});

Exemplo de solicitação

curl --location --request POST 'https://api.nexmo.com/v2/verify' \
  --header 'Authorization: Basic <base64(YOUR_API_KEY:YOUR_API_SECRET)>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "brand": "Acme Inc.",
    "workflow": [
      { "channel": "sms", "to": "447700000000" }
    ]
  }'

Você pode gerar a string codificada em Base64 a partir de api_key:api_secret utilizando qualquer ferramenta ou biblioteca padrão de codificação Base64.

Limitações

A autenticação básica permite acessar o fluxo principal de solicitações do Verify V2 (enviar, verificar, cancelar, acionar o próximo fluxo de trabalho), mas há duas limitações importantes:

  • Callbacks/webhooks não são suportados. Para receber callbacks de eventos ou resumos, é necessária a autenticação JWT Bearer, além de uma Application da Vonage configurada com uma URL de status.
  • O suporte a ACL (Lista de Controle de Acesso) não está disponível. Os tokens JWT permitem delimitar as permissões a pontos de extremidade específicos da API, o que não é possível com a autenticação básica.

Dadas essas limitações, a autenticação Basic Auth é mais adequada para testes iniciais e integrações de POC. Para implantações em produção, recomenda-se fortemente a autenticação JWT Bearer.

JWT

A JWT (JSON Web Token) é um padrão aberto (RFC 7519) para transmitir informações de forma segura entre as partes na forma de um objeto JSON. O objeto pode, opcionalmente, ser criptografado e assinado com uma chave privada/pública.

A autenticação JWT Bearer utiliza um JSON Web Token assinado com a chave privada do seu aplicativo Vonage. Esse método permite acessar todos os recursos do Verify V2, incluindo callbacks de eventos e resumos, configuração de webhooks e tokens com escopo de ACL.

Como funciona

Authorization: Bearer <JWT>

O JWT é gerado usando seu ID de aplicativo e sua chave privada, ambos obtidos ao criar uma aplicação da Vonage no painel de controle.

Para gerar um JWT, você precisará do seu application ID e private key, ambos disponíveis no Applications configurações no seu Painel de controle.

Aviso: A geração de todos os JWTs deve ser feita no backend. Não mantenha o prazo de validade dos tokens por mais tempo do que o necessário.

Existem várias maneiras de gerar um novo JWT:

vonage auth set --app-id your_application_id --private-key /path/to/your/private.key vonage jwt create

Observação:

  • Se você estiver usando um dos serviços da Vonage SDKs de servidor Você não precisa gerar um JWT separadamente, pois todos os SDKs oferecem suporte à geração de tokens JWT.

  • Se você não quiser gerar o JWT usando uma ferramenta ou biblioteca externa, como os SDKs da Vonage, poderá implementar sua própria geração de JWT. O Como gerar um JWT A postagem do blog inclui exemplos em JavaScript e Python que mostram como gerar um JWT sem dependências externas.

Uma vez gerado, os usuários devem poder utilizar o token para acessar endpoints protegidos. Isso geralmente é feito por meio do cabeçalho Authorization, utilizando o esquema Bearer:

Authorization: Bearer <JWT>

Etapas de configuração do Verify V2

  1. Crie uma aplicação da Vonage no Painel do Vonage.
  2. Gere um par de chaves pública/privada — baixe e armazene a chave privada com segurança.
  3. Ative o Verify V2 para o aplicativo e configure a URL de status (ponto de extremidade do webhook) para receber chamadas de retorno.
  4. Gere um JWT assinado com o ID do seu aplicativo e a chave privada. Você pode usar o Gerador de JWT, o CLI da Vonage, ou qualquer SDK da Vonage.
  5. Inclua o JWT em todas as solicitações de API usando o Authorization: Bearer cabeçalho.

Exemplo de solicitação

curl --location --request POST 'https://api.nexmo.com/v2/verify' \
  --header 'Authorization: Bearer YOUR_JWT' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "brand": "Acme Inc.",
    "workflow": [
      { "channel": "sms", "to": "447700000000" }
    ]
  }'

Os tokens JWT têm um tempo de vida máximo (TTL) de 24 horas. Certifique-se de que sua integração atualize os tokens antes do vencimento para evitar 401 Unauthorized erros.

O que o JWT possibilita

  • Callbacks de resumo — receber um relatório completo sobre o andamento ao final de cada solicitação de verificação.
  • Callbacks de eventos — receber eventos em tempo real durante a solicitação (por exemplo, para os canais “Silent Auth” e “WhatsApp Interactive”).
  • Tokens com escopo ACL — restringir as permissões dos tokens a endpoints específicos para aumentar a segurança.
  • Configuração do webhook — configurar verify_event_url e verify_status_url conforme o aplicativo da Vonage.

Migração da autenticação do Verify Legacy (V1)

Uma das principais mudanças na migração do Verify V1 para o Verify V2 é a forma como a autenticação é tratada.

No Verify V1, a autenticação era feita por meio da passagem de api_key e api_secret como parâmetros de consulta ou no corpo da solicitação. Esse método não é compatível com o Verify V2.

Verify V1 Verify V2
api_key + api_secret nos parâmetros da consulta / no corpo da consulta Authorization: Basic <base64(api_key:api_secret)> cabeçalho
Não é necessário se inscrever É necessário o aplicativo Vonage para o JWT
Não há suporte a webhooks Suporte completo a callback com JWT

Importante: Certifique-se de remover api_key e api_secret do corpo da solicitação ou dos parâmetros de consulta ao migrar para a V2. Esses campos não são aceitos nas chamadas da API V2.