Introdução à API do Verify

Verify permite que você confirme o número de telefone de um usuário enviando uma senha de uso único (OTP) por meio de diversos canais, como SMS, e-mail, mensagem de voz e WhatsApp. Você pode definir um fluxo de trabalho para controlar quais canais serão utilizados e em que ordem.

Este guia mostra como chamar a API Verify de forma síncrona, utilizando um fluxo de trabalho que primeiro tenta enviar uma mensagem SMS e, caso isso falhe, recorre a uma chamada de voz. Você também aprenderá a personalizar o comprimento do código OTP e os intervalos de espera entre as etapas.

Pré-requisitos

Este guia pressupõe que:

  • Você tem um account na Vonage. Caso contrário, pode criar um gratuitamente aqui.
  • Você tem cURL instalado no seu sistema.

Criar um novo aplicativo

Para começar, precisamos criar um novo aplicativo. Esse aplicativo conterá as credenciais necessárias para autenticar as chamadas à API. Siga estas etapas:

  1. Acesse o Painel de controle do aplicativo Vonage.
  2. Clique Criar um novo aplicativo.
  3. No Nome campo, digite um nome para o seu aplicativo.
  4. No Autenticação seção, clique em Gerar chave pública e chave privada para gerar um novo par de chaves. Um arquivo de chave privada (.key) será baixado automaticamente. Salve esse arquivo em um local seguro, pois ele é necessário para autenticar suas chamadas de API.
  5. Agora vá para o Recursos seção. Como não queremos receber atualizações assíncronas de status, você pode deixar o Verify função desativada.
  6. Por fim, clique no Criar um novo pedido botão para concluir o processo de criação.

Depois que o aplicativo for criado, copie o ID do aplicativo exibido no painel. Você precisará desse ID do aplicativo, juntamente com o arquivo da chave privada, para gerar JWTs para autenticação de solicitações de API.

Verify usuários finais com OTP

Para verificar os usuários finais por meio de uma senha de uso único (OTP), siga estas duas etapas:

  1. Solicitar um código de verificação. O usuário final receberá o código por meio de um dos canais especificados na sua chamada de API.
  2. Verifique o código de verificação fornecido. Uma segunda chamada à API validará o código inserido pelo usuário.

Solicitar um código de verificação

De acordo com o Especificação da API, o primeiro passo é enviar uma solicitação POST para o /v2/verify ponto de extremidade. Essa chamada de API inicializa o fluxo de trabalho de verificação que tenta enviar a OTP por SMS e, caso isso falhe, por chamada de voz.

curl -X POST "https://api.nexmo.com/v2/verify" \
    -H "Authorization: Bearer $JWT" \
    -H 'Content-Type: application/json' \
    -d $'{
        "brand": "TestVerify",
        "code_length": 5,
        "channel_timeout": 30,
        "workflow": [
        {
            "channel": "sms",
            "to": "'$PHONE_NUMBER'"
        },
        {
            "channel": "voice",
            "to": "'$PHONE_NUMBER'"
        }
    ]
}'

Vamos dar uma olhada nos cabeçalhos e no corpo da solicitação para entender melhor a chamada à API.

Cabeçalho Valor Obrigatório Descrição
Autorização Bearer $JWT Sim Autentica a solicitação da API usando JWT.
Tipo de conteúdo application/json Sim Especifica que o corpo da solicitação está no formato JSON.

Campo do corpo Obrigatório Tipo Descrição
brand Sim String O nome da sua empresa ou serviço, exibido ao usuário na mensagem de verificação (TestVerify (neste exemplo)
code_length Não Inteiro O número de dígitos do código OTP. O valor padrão é 4, caso não seja especificado.
channel_timeout Não Inteiro Tempo (em segundos) que deve ser aguardado antes de passar para a próxima etapa do fluxo de trabalho.
workflow Sim Matriz Define a sequência de canais para o envio da OTP (por exemplo, SMS, voz). Você pode saber mais sobre fluxos de trabalho em nosso guia de fluxo de trabalho.
workflow.channel Sim String O canal de entrega a ser utilizado (sms, voice, whatsapp).
workflow.to Sim String O número de telefone para o qual a OTP deve ser enviada, no formato E.164 (por exemplo, +44111223344).

Se a solicitação for bem-sucedida, você receberá um 200 Ok resposta contendo um request_id no corpo:

{
   "request_id":"3b4363c9-1234-567a-90ab-c45a134561bc"
}

Ao mesmo tempo, o usuário final deve receber um SMS contendo um código de verificação de 5 dígitos. Se o usuário não concluir a verificação em 30 segundos (conforme definido por channel_timeout), receberão automaticamente uma ligação de voz na qual o código será lido em voz alta.

Você precisará tanto do request_id e o código digitado pelo usuário para concluir a verificação na próxima etapa.

Verifique o código de verificação fornecido

Assim que o usuário final receber o código, você deve enviar uma solicitação POST para o /v2/verify/{request_id} ponto final, substituindo {request_id} com o número de identificação que você recebeu na ligação anterior:

curl -X POST "https://api.nexmo.com/v2/verify/$VERIFY_REQUEST_ID" \
  -H "Authorization: Bearer $JWT"\
  -H 'Content-Type: application/json' \
  -d $'{
    "code": "'$VERIFY_CODE'"
  }'

Cabeçalhos da solicitação:

Cabeçalho Valor Obrigatório Descrição
Autorização Bearer $JWT Sim Autentica a solicitação da API usando JWT.
Tipo de conteúdo application/json Sim Especifica que o corpo da solicitação está no formato JSON.

Corpo da solicitação:

Campo do corpo Obrigatório Tipo Descrição
code Sim String O código de verificação recebido pelo usuário final

Se a solicitação for bem-sucedida, você receberá um 200 OK resposta informando que o processo de verificação foi concluído:

{
   "request_id":"3b4363c9-1234-567a-90ab-c45a134561bc",
   "status":"completed"
}

Conclusão

Neste guia, você aprendeu a implementar a verificação do usuário final usando a API Verify com uma configuração multicanal: começando com SMS e recorrendo a Voz se necessário.

Os exemplos do cURL apresentados aqui têm exclusivamente fins didáticos. Em uma implementação real, você deve integrar o Verify diretamente ao seu backend, usando o seu preferido linguagem de programação.

E agora?

Agora que você já entende como funciona a API Verify e o quanto a abordagem multicanal é eficaz, explore os diferentes canais compatíveis que você pode usar na sua verificação fluxo de trabalho.

Melhore seu processo de verificação implementando Autenticação silenciosa, o que permite que você verifique usuários por meio do tráfego móvel sem que eles precisem digitar uma senha de uso único (OTP).

Por fim, não se esqueça de conferir o Especificação da API, onde você encontrará mais parâmetros úteis para aproveitar ao máximo a API do Verify.