Migração do Programmable SMS para Verify

June 03, 2021
Escrito por
Revisado por

A API Verify é uma solução de uso específico para enviar senhas de uso exclusivo (OTP) para verificação e autenticação do usuário via SMS, voz, e-mail, push e TOTP. A API Programmable Messaging da Twilio oferece a muitas empresas a base para criar soluções próprias de OTP. No entanto, manter uma solução de OTP interna pode ser complexo e usar muitos recursos, especialmente à medida que o cenário de mensagens e os requisitos de conformidade continuam a mudar. Muitas empresas estão migrando para Verify pela mesma confiabilidade global e entrega inigualável em escala que a Programmable Messaging da Twilio, com os benefícios adicionais de:

  • Gerenciamento regulatório e de conformidade, incluindo A2P 10DLC
  • Inclui um conjunto de números de telefone de envio gerenciado, incluindo short codes, long codes, números gratuitos e IDs de remetente alfa globais*
  • Entrega mundial gerenciada, como tipos de remetente e conformidade em escala global
  • API sem estado para lidar com a geração e verificação de token (com uma opção para trazer um código próprio)
  • Traduções de mensagens de OTP com uso de modelos em dezenas de idiomas
  • Suporte multicanal para SMS, voz, e-mailpush e TOTP

Este guia fornece uma introdução à API Verify e um conjunto de diretrizes para migrar seu app de Programmable SMS para Verify.

*Pré-registro necessário para IDs de remetente alfa em determinados países. Leia mais.

Requisitos de migração para envio de tokens com Verify

O processo de migração requer configuração inicial única e, em seguida, a troca de uma chamada de API. Supondo que você já tenha uma experiência de usuário de senha de uso único, o design do produto pode ser reutilizado. Você também poderá excluir uma quantidade razoável de códigos, o que sempre é satisfatório.

Com Programmable SMS, no mínimo você precisa:

  1. Comprar números de telefone
  2. Gerar um código numérico aleatório
  3. Armazenar o código em seu banco de dados para associá-lo ao usuário final
  4. Enviar o código SMS
  5. Verificar o código

Com a Verify, você não precisa executar as etapas 1, 2 ou 3. Em vez disso, você precisa:

  1. Criar um serviço do Verify (configuração única)
  2. Enviar o código SMS
  3. Verificar o código

Aqui está um exemplo do código Programmable SMS necessário para enviar uma OTP:

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require("twilio")(accountSid, authToken);

const from = "YOUR TWILIO NUMBER";
const to = "+15558675310";

// generate a 6 digit token
const token = Math.floor(Math.random() * (999999 - 100000) + 100000);
const message = `Your Example App verification code is: ${token}`;

function storeToken(to, token) {
 /*
  * Required:
  *   - Store token with the user's phone number in your database
  *   - Set token expiration
  */
}

// send OTP
client.messages.create({ body: message, from, to }).then((message) => {
 storeToken(to, token);
 console.log(message.sid);
 // prompt user for token
});

A versão do Verify do mesmo código (abaixo) elimina a necessidade de:

  1. um número from;
  2. gerar um token
  3. a função storeToken
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require("twilio")(accountSid, authToken);

const to = "+15558675310";

// send OTP
client.verify
 .services("YOUR VERIFY SERVICE SID")
 .verifications.create({ to, channel: "sms" })
 .then((verification) => {
   console.log(verification.status);
   // prompt user for token
 });

Serviços Verify

O Verify usa Serviços para configuração. Para enviar uma solicitação da API Verify, você precisará de suas credenciais da Twilio e um SID de serviço. Você pode criar e atualizar um Serviço de duas maneiras:

  1. Com a API Verify
  2. No Console do Verify

Os serviços podem ser usados para editar o nome, que aparece no modelo de mensagem, definir o comprimento do código, de 4 a 10 caracteres, ativar configurações como "não compartilhar avisos" e muito mais.

Traga seu código personalizado

Incentivamos você a usar a geração de código da Verify, mas você sempre pode usar sua própria lógica ao fornecer o parâmetro customCode na chamada de API exibida acima. Confira as opções de personalização e entre em contato para que possamos habilitar esse recurso para você. Se você estiver usando códigos de verificação personalizados, solicitamos que forneça um feedback que nos informe se o usuário verificou o código ou não. Isso nos permite monitorar proativamente nosso roteamento global e permanecer operacional.

Localização da mensagem de verificação

A API Verify lida com a localização e tradução em dezenas de idiomas, de africâner a vietnamita. Saiba mais sobre como definimos idiomas padrão e como enviamos uma mensagem localizada na documentação.

Requisitos de migração para verificação de tokens com a Verify

Embora a verificação de um token não seja difícil, a API Verify elimina a necessidade de buscar um token no seu armazenamento.

No Programmable SMS, verificar um token pode ser da seguinte forma:

const to = "+15558675310";
const token = "123456"; // acquired from UI

function fetchToken(to) {
 /*
  * Required:
  *   - Fetch the token stored with the user's phone number
  *   - Ensure the token is not expired
  */
}

// check OTP
const validToken = fetchToken(to);
if (token === validToken) {
 // successful
} else {
 // failed
}

Com a Verify, verificar um token requer uma chamada de API adicional, mas elimina a necessidade de armazenar o token e obtê-lo:

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require("twilio")(accountSid, authToken);

const to = "+15558675310";
const token = "123456"; // acquired from UI

// check OTP
client.verify.services("YOUR VERIFY SERVICE SID")
 .verificationChecks
 .create({to, code: token})
 .then(check => {
   if (check.status === "approved") {
     // successful
   } else {
     // failed
   }
 });

Tratamento de erros

Os códigos de erro da Verify são diferentes dos códigos de erro do Programmable SMS e podem ser encontrados na documentação. Erros comuns incluem:

Número de telefone com formato estrito E.164

Na Verify, as verificações são iniciadas com números de telefone no formato E.164, como este: +15552317654. O Programmable SMS é mais leve com o parâmetro de número de telefone, portanto, itens como espaços foram permitidos. Confira a API Lookup e esta postagem do blog para ver exemplos de como formatar números no E.164.

Práticas recomendadas

Use a API Lookup para converter números de telefone para o formato E.164

A chamada de API de formatação Lookup gratuita fornecerá duas informações úteis:

  1. O número do telefone no formato E.164. O formato necessário para a verificação contínua.
  2. O código do país no formato ISO 3166 alpha-2 (por exemplo, USCABR etc.). Isso é necessário para criar uma lista de permissões ou uma lista de bloqueio de países.

Armazene o número de telefone no formato E.164 e o país em seu banco de dados para uso futuro.

Saiba mais na documentação da Lookup.

Definir países permitidos

Se você tiver uma base de usuários global, poderá autorizar todos os países. Se você está esperando apenas o tráfego de um alguns países, então poderá criar uma lista de permissão para ajudar a mitigar a fraude de tarifa. No verso, você também poderá criar uma lista de bloqueio se houver países dos quais não se espera tráfego.

Perguntas Frequentes

Por que estou recebendo o mesmo código com novas solicitações de verificação usando a Verify?

Verifique se os tokens são válidos por 10 minutos e, durante esse período, a senha não foi alterada. Para forçar uma nova senha, complete o ciclo de vida de verificação.

Os limites de taxa são diferentes na Verify?

Os limites de taxa para verificar SMS incluem:

  • 5 tentativas de verificação de envio em até 10 minutos por número de telefone exclusivo [mais informações].
  • 5 tentativas de verificação de checagem por número de telefone exclusivo [mais informações].

Entre em contato com departamento de vendas ou suporte para obter mais informações sobre os limites de taxas. A maioria dos clientes considera os limites de taxa padrão para verificações suficientes, mas você também pode proteger seu aplicativo com limites de taxa de serviço adicionais.

Como testar a verificação sem obter taxa limitada?

Veja a postagem do blog Como testar a Twilio Verify sem obter a taxa limitada.

Quanto custa a Verify?

O preço base das verificações é de US$ 0,05/verificação checada. Lembre-se de que a Verify inclui o custo dos números de telefone globais. Saiba mais na página de preços da Verify ou entre em contato para obter preços por volume.

Quais outros métodos de verificação são compatíveis com a Verify?

A Verify inclui suporte para SMS, voz, e-mailpush e TOTP.

Este artigo foi traduzido do original "Migrate from Programmable SMS to Verify". Enquanto melhoramos nossos processos de tradução, adoraríamos receber seus comentários em help@twilio.com - contribuições valiosas podem render brindes da Twilio.