Autenticação do servidor

Pré-requisitos

Este guia pressupõe que você já tenha cumprido os seguintes requisitos:

  • O recurso “Funcionalidades de rede” está ativado no seu aplicativo da Vonage. Siga estas instruções guia para ler informações detalhadas sobre como fazer isso.
  • Você tem um JWT. Você pode usar o nosso gerador online para criar um JWT usando sua chave privada e o ID do seu aplicativo Vonage, ambos encontrados no painel do cliente, ou siga as instruções aqui usar outro método.

Referência da API de Autenticação

A especificação OpenAPI para os pontos de extremidade de autenticação do Network Feature está disponível aqui.

Fluxo de autenticação

Fazer uma chamada de API é um processo que envolve três etapas:

  1. O aplicativo de back-end solicita um ID de autorização.
  2. O aplicativo de back-end usa esse ID de autorização para solicitar um token de acesso CAMARA.
  3. Por fim, o aplicativo de back-end usa o token de acesso para fazer a chamada à API.

Fazer uma solicitação OIDC

O OpenID Connect (OIDC) é uma camada de identidade desenvolvida com base no protocolo OAuth 2.0, que oferece uma maneira de verificar a identidade de um usuário utilizando o JWT token.

POST https://api-eu.vonage.com/oauth2/bc-authorize

curl -X POST https://api-eu.vonage.com/oauth2/bc-authorize \
  --header "Authorization: Bearer $JWT" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "login_hint=$PHONE_NUMBER" \
  --data-urlencode "scope=$SCOPE"

Cabeçalhos

Cabeçalho Descrição
Authorization Deve ser definido como Bearer juntamente com o JWT token gerado na etapa anterior. O JWT deve corresponder ao aplicativo aprovado para o uso dos recursos de rede.
Content-Type Deve ser definido como application/x-www-form-urlencoded.

Parâmetros corporais

Parâmetro Descrição
login_hint (Obrigatório) O número de telefone (incluindo o código do país) que você deseja verificar, por exemplo: +447700900000
scope (Obrigatório) Escopo em formato de string.

Se você quiser fazer uma chamada de API para um número de telefone diferente, será necessário gerar um novo token de acesso para esse número.

Resposta

Se a operação for bem-sucedida, a resposta conterá um 200 OK status e os seguintes dados JSON no corpo da resposta:

{
  "auth_req_id": "$AUTH_REQ_ID",
  "expires_in": 120,
  "interval": 2
}
Parâmetro Tipo Descrição
auth_req_id sequência de caracteres A sequência de caracteres do ID de autorização de que você precisará para a próxima etapa.
expires_in int O número de segundos até que o código de autenticação expire
interval int O número de segundos até que a próxima solicitação deva ser feita

Solicitar um token de acesso CAMARA

Para solicitar um token de acesso CAMARA, envie uma solicitação POST para https://api-eu.vonage.com/oauth2/token

curl -X POST https://api-eu.vonage.com/oauth2/token \
  --header "Authorization: Bearer $JWT" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "auth_req_id=$AUTH_REQ_ID" \
  --data-urlencode "grant_type=urn:openid:params:grant-type:ciba"

Cabeçalhos

Cabeçalho Descrição
Authorization Deve ser definido como Bearer juntamente com o JWT token gerado na etapa anterior. O JWT deve corresponder ao aplicativo aprovado para o uso dos recursos de rede.
Content-Type Deve ser definido como application/x-www-form-urlencoded.

Parâmetros corporais

Parâmetro Descrição
auth_req_id (Obrigatório) Isso é fornecido na resposta do etapa anterior.
grant_type (Obrigatório) Deve ser definido como urn:openid:params:grant-type:ciba.

Resposta

Se a operação for bem-sucedida, a resposta conterá um 200 OK status e os seguintes dados JSON no corpo da resposta:

{
 "access_token": "$ACCESS_TOKEN",
 "token_type": "Bearer",
 "expires_in": 3600
}
Parâmetro Tipo Descrição
access_token sequência de caracteres O token de acesso que será utilizado durante as chamadas à API.
token_type sequência de caracteres Está sempre definido como Bearer.
expires_in int O período de tempo (em segundos) durante o qual o token de acesso é válido.

Faça a chamada à API

Todas as chamadas com recursos de rede devem conter o seguinte cabeçalho:

Cabeçalho Descrição
Authorization Deve ser definido como Bearer juntamente com o access token gerado no etapa anterior.

Exemplo de solicitação

O exemplo a seguir mostra como fazer uma chamada de API para API de troca de SIM usando o token de acesso:

curl -X POST https://api-eu.vonage.com/camara/sim-swap/v040/check \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --data $'{
        "phoneNumber": "'$PHONE_NUMBER'",
        "maxAge": 240
}'

Exemplo de resposta

Se a operação for bem-sucedida, a resposta conterá um 200 OK status e os seguintes dados JSON no corpo da resposta:

{
   "swapped": true
}