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:
Aceda à página Fornecedores de identidade na Google Cloud consola.
Aceda à página Fornecedores de identidadeSe 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.
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
.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.