
Compartilhar:
Helena é redatora técnica sênior na Vonage e trabalha com toda a documentação relacionada às nossas APIs de comunicação. Morando em Londres, ela costuma passar o tempo jogando videogame, comprando muitos discos de vinil ou assistindo a peças de teatro.
Melhores práticas para a implementação da autenticação silenciosa
Tempo de leitura: 5 minutos
Com o Verify V2 tendo acabado de ser lançado para disponibilidade geral, gostaríamos de aprofundar um pouco mais nosso recurso de Autenticação Silenciosa! Neste artigo, vamos explicar como ele funciona, além de apresentar algumas ferramentas úteis e dicas para a implementação.
Como funciona a autenticação silenciosa?
A Autenticação Silenciosa é um canal da Verify API que permite concluir a autenticação sem um código de autenticação de duas etapas (2FA). Depois que o usuário insere suas credenciais de login, a identidade dele é comprovada por meio da verificação das informações do SIM em relação aos registros da operadora, a fim de garantir que o número de telefone esteja ativo e seja válido. Depois que uma solicitação for verificada, você poderá autenticar o usuário continuamente até que a solicitação expire ou o usuário a cancele.
Em resumo, trata-se de um método de autenticação que utiliza o Módulo de Identidade do Assinante (SIM) de um celular para comprovar a identidade do usuário sem a necessidade de intervenção do usuário.
Você pode ler mais sobre como funciona a autenticação silenciosa em nossa post anterior do blog ou na documentação para desenvolvedores; o restante deste artigo apresentará algumas dicas e recursos úteis que você pode levar em consideração ao implementar a autenticação silenciosa.
Forçar uma conexão de dados móveis
A autenticação silenciosa não depende apenas de o usuário ter um celular — ela também requer uma conexão à rede de celular. Se a solicitação for enviada por Wi-Fi, ocorrerá um erro. Para resolver isso, disponibilizamos bibliotecas para iOS e Android que podem ajudá-lo a fazer uma solicitação HTTP pela rede de celular, mesmo quando estiver conectado ao Wi-Fi:
Android
A Biblioteca do Android está disponível no GitHub, onde você pode encontrar informações sobre permissões, compatibilidade e exemplos de como integrar a autenticação silenciosa aos seus aplicativos:
import com.vonage.clientlibrary.VGCellularRequestClient
import com.vonage.clientlibrary.VGCellularRequestParameters
VGCellularRequestClient.initializeSdk(this.applicationContext)
val params = VGCellularRequestClientParameters(
url = "http://www.vonage.com",
headers = mapOf("x-my-header" to "My Value") ,
queryParameters = mapOf("query-param" to "value"),
maxRedirectCount = 10
)
val response = VGCellularRequestClient.getInstance().startCellularGetRequest(params, false)
if (response.optString("error") != "") {
// error
} else {
val status = response.optInt("http_status")
if (status == 200) {
// 200 OK
} else {
// error
}
} iOS
A Biblioteca do iOS também está disponível no GitHub, onde você pode encontrar informações sobre instalação, compatibilidade e exemplos de uso:
import VonageClientLibrary
let client = VGCellularRequestClient()
let params = VGCellularRequestParameters(url: "http://www.vonage.com",
headers: ["x-my-header": "My Value"],
queryParameters: ["query-param" : "value"]
maxRedirectCount: 10)
let response = try await client.startCellularRequest(params: params, debug: true)
if (response["error"]) != nil {
// Handle error
} else {
let status = resp["http_status"] as! Int
if (status == 200) {
// Handle response
} else {
// Handle error
}
} Sandbox de autenticação silenciosa
Testar a autenticação silenciosa pode ser difícil. Para testar se a verificação foi bem-sucedida, é preciso executar o código a partir de um aplicativo em execução em um celular, por meio de uma rede móvel, o que pode ser complicado de configurar. Para ajudar nisso, a Vonage disponibilizou um ambiente de teste que contorna a verificação com a operadora. Em vez disso, você usará os dados retornados em seus callbacks para concluir a verificação por conta própria, eliminando a necessidade de uma conexão com a rede móvel.
Para fazer isso, adicione "sandbox": "true" ao seu fluxo de trabalho:
Isso fará com que sua solicitação seja enviada diretamente para a sandbox, sem passar pela operadora.
O guia completo sobre como usar a sandbox de autenticação silenciosa pode ser encontrado aqui.
Quer você use a sandbox ou não, receberá uma resposta contendo tanto o seu request_ide o check_url:
{
"request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
"check_url": "https://api.nexmo.com/v2/verify/31eaf23d-b2db-4c42-9d1d-e847e75ab330/silent-auth/redirect"
}Para continuar, você precisará enviar uma GET solicitação para o check_url. Isso resultará em várias HTTP302 respostas que seu cliente precisará seguir, sendo que o número delas dependerá do roteamento de operadora necessário, com base na localização do dispositivo.
HTTP/1.1 302 Found
Location: https://eu.api.silentauth.com/phone_check/v0.2/checks/31eaf23d-b2db-4c42-9d1d-e847e75ab330/redirectHTTP/1.1 302 Found
Location: https://sandbox.redirect.m-auth.com/callback/sandbox?id=31eaf23d-b2db-4c42-9d1d-e847e75ab330Depois de seguir os redirecionamentos, você receberá um HTTP200 que nos leva à etapa final. Você receberá uma code na resposta, que precisa ser enviado para o check-code ponto de extremidade:
{
"request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
"code": "si9sfG"
}Esse código funciona exatamente da mesma forma que um código recebido por outro canal. Envie o código para o endpoint da API:
POST /https://api.nexmo.com/v2/verify/31eaf23d-b2db-4c42-9d1d-e847e75ab330 HTTP/1.1
Content-Type: application/json
{
"code": "si9sfG"
}e você receberá sua resposta final. Se for bem-sucedido:
HTTP/1.1 200 OK
Content-Type: application/json
{
"request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
"status": "completed"
}E se a verificação falhar:
HTTP/1.1 409 CONFLICT
Content-Type: application/json
{
"title": "Network error",
"detail": "The Silent Auth request could not be completed due to formatting or the carrier is not supported."
}O guia completo sobre como usar a sandbox de autenticação silenciosa pode ser encontrado aqui.
Recurso alternativo para outros canais
Existem várias situações em que a autenticação silenciosa pode não funcionar; por exemplo, se o usuário estiver:
Em um computador de mesa
Fora da área de cobertura da rede deles
Usando uma conexão Wi-Fi em vez da rede de celular
Nesses casos, você tem a opção de recorrer a outros canais. Para isso, basta configurar o fluxo de trabalho na sua solicitação; neste exemplo, será tentada primeiro a autenticação silenciosa. Se isso falhar, será enviado um SMS:
Saiba mais sobre fluxos de trabalho e os canais disponíveis aqui.
Conclusão
Espero que você tenha achado útil esta compilação de dicas e sugestões e que ela o ajude em seus futuros projetos com a Autenticação Silenciosa! Você pode criar um Account para começar a usar o Verify agora mesmo, seguir nossa Account de desenvolvedor no Twitter para se manter atualizado e conferir nossa documentação para desenvolvedores para obter mais informações.