Registar números de telefone de teste

Este documento mostra como registar números de telefone com a Identity Platform para fins de desenvolvimento. Isto permite-lhe testar métodos de autenticação que envolvem o envio de uma mensagem SMS, como o início de sessão por telemóvel e a autenticação multifator.

A utilização de um número de teste (em vez de um número real que lhe pertence) tem várias vantagens:

  • Integra-se perfeitamente com os emuladores iOS e Android.
  • Elimina a sobrecarga do envio de um SMS real.
  • Pode executar testes consecutivos com o mesmo número de telefone sem restrições.
  • Pode escrever testes de integração sem ser bloqueado por verificações de segurança.
  • Não consome a sua quota de utilização.

Pode registar até 10 números de telefone para desenvolvimento.

Registar um número de telefone de teste

Para registar um número de telefone de teste:

  1. Aceda à página Fornecedores de identidade na Google Cloud consola.
    Aceda à página Fornecedores de identidade

  2. Se estiver a testar a autenticação por telefone, localize-a na lista de fornecedores e, em seguida, clique no ícone Editar. Se estiver a testar a autenticação multifator, selecione o separador SMS multifator e, de seguida, clique em Editar.

  3. Em Números de telefone para testes, introduza um número de telefone e um código de validação para se registar.

    O número de telefone deve usar o formato E.164 e não pode estar já atribuído a um utilizador do Identity Platform existente. O código de validação deve ter seis dígitos. Por motivos de segurança, escolha números difíceis de adivinhar e evite padrões óbvios, como +1 123-456-7890.

  4. Clique em Guardar.

Os números de telefone de teste são tratados como números de telefone reais pela Identity Platform, pelo que deve armazená-los em segurança e alterá-los a intervalos regulares.

Testes manuais

Pode começar imediatamente a usar números de telefone de teste na sua app, diretamente ou através dos emuladores iOS e Android. Quando inicia sessão com um número de telefone de teste, não é enviado nenhum código de validação por SMS. Em alternativa, introduza o código que registou quando criou o número de teste.

Depois de iniciar sessão, é criado um utilizador da Identity Platform com o número de telefone de teste. Este utilizador tem o mesmo comportamento e propriedades que um utilizador real, incluindo um token de ID válido, o que significa que pode aceder a todas as suas apps e serviços.

Para restringir o acesso dos seus utilizadores de teste, considere criar uma função de teste com autorizações limitadas e atribuí-la através de reivindicações personalizadas.

Testes de integração

Além dos testes manuais, o SDK do cliente contém APIs que podem ajudar a escrever testes de integração. Estas APIs desativam os requisitos do reCAPTCHA e da validação de apps, o que facilita a sua ignorância com a automatização.

O exemplo seguinte mostra como testar a sessão de um utilizador com um número de telefone:

JavaScript

// Turn off phone app verification.
firebase.auth().settings.appVerificationDisabledForTesting = true;

var phoneNumber = "+16505554567";
var testVerificationCode = "123456";

// Render a fake reCAPTCHA and resolve without app verification.
var appVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
// signInWithPhoneNumber will call appVerifier.verify(), which will resolve
// with a fake reCAPTCHA response.
firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier)
  .then(function (confirmationResult) {
    // confirmationResult can resolve using testVerificationCode.
    return confirmationResult.confirm(testVerificationCode)
  }).catch(function (error) {
    // Error; SMS not sent
    // ...
  });

Os validadores reCAPTCHA simulados visíveis e invisíveis comportam-se de forma diferente quando a validação de apps está desativada:

  • reCAPTCHA visível: para simular um clique do utilizador, o reCAPTCHA resolve-se automaticamente após um breve atraso.

  • reCAPTCHA invisível: para simular a validação da app, o reCAPTCHA é resolvido automaticamente quando appVerifier.verify() é chamado.

Os reCAPTCHAs simulados continuam a acionar os respetivos callbacks quando são resolvidos ou expiram.

O que se segue?

  • Adicione a autenticação multifator à sua app Web, iOS ou Android.