A API de verificação de e-mail é uma proposta que permite que o navegador se comunique diretamente com o provedor de e-mail para verificar se o usuário é o proprietário do endereço de e-mail. Os usuários inserem o e-mail, enviam o formulário e o site verifica o token de verificação de e-mail assinado do navegador com o provedor sem enviar um e-mail ou interromper o fluxo do usuário.
Ao coletar um endereço de e-mail durante a inscrição, o login, o checkout, a assinatura de newsletter ou a recuperação de conta, os sites normalmente confirmam que a pessoa que envia o formulário controla o endereço. Os métodos de verificação atuais exigem que os usuários saiam do seu site, troquem de app para verificar a caixa de entrada, copiem uma OTP ou cliquem em um link de verificação. Essa interrupção aumenta o abandono e o encerramento da sessão para usuários humanos e agentes automatizados. Os usuários costumam ter problemas com os métodos de verificação atuais, como e-mails atrasados, links expirados ou códigos não reconhecidos.
A verificação de e-mail atua como um aprimoramento progressivo do seu fluxo atual:
- Sem interrupção: a verificação ocorre em segundo plano enquanto o usuário preenche o formulário.
- Nenhuma detecção de recursos necessária: os sites adicionam uma entrada de e-mail e uma entrada de token oculta aos formulários. Se o navegador ou provedor não oferecer suporte à verificação de e-mail ou se a verificação falhar, o site vai voltar ao fluxo de confirmação de e-mail padrão.
- Minimizar os riscos de phishing: não há código para copiar nem oportunidade de enviar o usuário para um site falso.
Links úteis
- Especificação da API de verificação de e-mail (WICG) (repositório do GitHub)
- Rascunho da Internet do protocolo de verificação de e-mail (IETF) (repositório do GitHub, link em inglês)
- Verificação de e-mail no status da plataforma Chrome
- Registro do teste de origem da verificação de e-mail
Você pode testar o fluxo na demonstração:
- Demonstração do emissor: fornece uma conta de e-mail de simulação e uma sessão conectada.
- Demonstração do verificador: verifique o e-mail de demonstração ou qualquer e-mail de provedor participante.
Considerações sobre o teste de origem
Os testes de origem são experimentos para coletar feedback. Portanto, sua contribuição é fundamental se você participar como uma parte confiável ou um provedor de identidade. Para informar problemas, use os seguintes repositórios do GitHub:
- API de verificação de e-mail do navegador: WICG/email-verification (link em inglês)
- Protocolo de verificação de e-mail: dickhardt/email-verification (link em inglês)
Se você encontrar bugs na implementação do Chrome, registre um problema no seguinte componente:
Você controla a funcionalidade do teste de origem por resposta, incluindo o token do teste de origem. Isso permite restringir o recurso a um segmento específico dos usuários, como uma população de testes A/B. Como alternativa, se você tiver um grupo de usuários de teste Beta ou de pré-lançamento, talvez seja necessário ativar o recurso para eles. Nesse caso, verifique o endereço de e-mail fornecido antes de emitir ou validar o token.
Os testes de origem também têm limites de tráfego para minimizar os sites que dependem do recurso antes do lançamento. A API do emissor está em desenvolvimento, e você pode esperar mudanças incompatíveis com versões anteriores, além de atualizações na experiência do usuário do Chrome.
Acompanhe mais atualizações no blog e na evp-announce@chromium.org lista de e-mails à medida que o desenvolvimento avança.
Fluxo de verificação de e-mail
As seções a seguir explicam os termos-chave e as etapas do protocolo ao usar a API de verificação de e-mail.
Termos-chave
Os termos-chave da API de verificação de e-mail são:
- Verificador: o site que coleta o endereço de e-mail e quer verificar isso. O verificador também é chamado de parte confiável.
- Provedor de e-mail: o serviço que fornece o endereço de e-mail do usuário, por
exemplo
gmail.com. - Emissor: o serviço que gerencia a conta do e-mail do usuário, por
exemplo
accounts.google.com. O emissor também é chamado de provedor de identidade.
Em alguns casos, o provedor de e-mail e o emissor operam no mesmo domínio.
No entanto, é importante distinguir entre eles, porque a API Email Verification está usando a sessão ativa no navegador com o provedor de identidade como método de verificação. Por exemplo, para verificar example@gmail.com, o usuário precisa fazer login em google.com com essa conta no mesmo navegador.
Fluxo de protocolo
- Apresentação do formulário: a parte confiável veicula um formulário HTML que contém um
<input type="email">e uma entrada oculta marcada comautocomplete="email-verification-token"e umnonceexclusivo por instância. - Entrada de e-mail: quando o usuário insere um endereço de e-mail, seja selecionando
uma sugestão de preenchimento automático ou digitando ou colando e saindo do campo
(
blur), o navegador aciona a verificação em segundo plano. - Descoberta e sessão: o navegador consulta o registro TXT do DNS para
_email-verification.<email-domain>para descobrir a origem do emissor autorizado do provedor e, em seguida, verifica se o usuário tem uma sessão ativa usando a configuração.well-known/web-identitydo emissor e os endpoints de contas do FedCM. Se o domínio não publicar um registro de EVP ou não houver uma sessão de atividade ativa, o navegador interrompe a verificação sem solicitar ao usuário. - Emissão de token: o navegador descobre o
issuance_endpointdo provedor em.well-known/email-verification, cria um par de chaves temporárias e envia uma solicitação HTTPPOSTusando assinaturas de mensagens HTTP (RFC 9421) com os cookies de sessão primários do emissor e o endereço de e-mail de destino para receber um token de verificação de e-mail assinado (EVT). - Vinculação de chave e envio: o navegador vincula o
EVTà origem da parte confiável e ao formuláriononcedentro de um JWT de vinculação de chave (KB-JWT) e mostra uma pequena notificação informando ao usuário que o provedor de e-mail verificou o endereço. Quando o usuário envia o formulário, o Chrome preenche a entrada oculta com o token combinado (<EVT>~<KB-JWT>). - Validar declarações e KB: o servidor da parte confiável analisa o token
<EVT>~<KB-JWT>, valida as declarações esperadas (email,email_verified,aud,nonce,iat, eexp) e verifica a assinatura de vinculação de chave na chave pública temporária emcnf.jwk. - DNS e chaves públicas: a parte confiável consulta o registro TXT do DNS
_email-verification.<email-domain>para confirmar se ele corresponde à declaraçãoissdo token e, em seguida, busca os metadados.well-known/email-verificationdo emissor e as chaves públicas dejwks_uri. - Verificar o EVT e concluir: a parte confiável verifica a assinatura
EVTdo emissor usando oJWKSpúblico do provedor. Se nenhum token for recebido ou se qualquer etapa de validação falhar, o site vai voltar ao processo de confirmação de e-mail atual.
Na primeira vez que um usuário verifica um endereço de e-mail, o Chrome mostra um prompt de permissão (uma caixa de diálogo no computador ou uma página inferior no Android) antes de solicitar um token. Se concedida, essa permissão será lembrada por endereço de e-mail em todos os sites participantes.
Configurações do Chrome
Os usuários podem gerenciar os e-mails verificados:
- No computador, em Configurações > Preenchimento automático e senhas > Informações de contato > E-mail verificado (ou abra
chrome://settings/contactInfo) - No Android, em Configurações > Endereços e mais > E-mail verificado
Os usuários podem desativar o recurso completamente ou gerenciar endereços de e-mail verificados individuais.
Considerações sobre casos de uso
A verificação de e-mail é um aprimoramento progressivo do seu fluxo atual que elimina a necessidade de um usuário sair do seu site para recuperar uma OTP ou clicar em um link. Os sites podem adicionar os campos de verificação de e-mail a todos os formulários relevantes, como logins, inscrições em newsletters, criação de contas e recuperação de senhas. O EVP é acionado apenas se o navegador oferecer suporte a ele. Se nenhum código for recebido no envio ou se qualquer uma das etapas de validação falhar, você poderá voltar ao fluxo de confirmação de e-mail padrão. Isso também significa que não há detecção de recursos para a API. O site do verificador trata o EVT como opcional, processando-o se ele estiver presente na solicitação.
A verificação de e-mail confirma que o usuário tem uma sessão ativa com o provedor do endereço de e-mail. Ela não verifica se o e-mail chegou ao usuário. Talvez você ainda queira enviar e-mails de boas-vindas ou de integração e talvez queira ou precise pedir ao usuário para verificar as configurações de spam.