https://a.storyblok.com/f/270183/22366/0fc813ba75/social_amazon-cognito_verify_1200x627.png

AWS Cognito Verify com PHP

Publicado em October 26, 2020

Tempo de leitura: 6 minutos

Fazer o gerenciamento de usuários da maneira correta dá muito trabalho. Permitir que os usuários se cadastrem por conta própria e verificar a identidade deles pode ser complicado. No entanto, usando o Amazon Cognito e a Verify API do Vonage Verify ajuda a tornar isso um pouco mais fácil, assumindo as tarefas mais complexas.

Com alguns formulários da web, o SDK da Vonagee SDK da AWS, você pode criar um sistema padrão de gerenciamento de usuários que permite que um usuário se cadastre, atualize suas credenciais, valide sua identidade e faça login. Você usará o código do repositório de código .

NOTA: Para fins didáticos, o código de exemplo no repositório acima foi mantido simples. Não utilizei nenhum framework, CSS nem JavaScript. No entanto, recomendo o uso de um framework compatível e de estilos CSS adequados para criar um aplicativo melhor, respeitando a separação adequada de responsabilidades.

Pré-requisitos

Instruções de configuração

Clone o repositório Verify-aws-cognito-php do GitHub e acesse o diretório recém-criado para continuar.

Instalar dependências

Este exemplo requer o uso do Composer para instalar dependências e configurar o carregador automático.

Supondo que você tenha o Composer instalado globalmente, execute:

composer install

Configuração da AWS

Este exemplo utiliza os User Pools do Amazon Cognito para armazenar usuários. Configurei um User Pool da seguinte maneira:

  • Acesse o Painel do Amazon Cognito no Console da AWS.

  • Selecione Manage User Pools.

  • Crie um novo grupo de usuários.

    • Dê um nome ao grupo e clique em Step through settings

    • Selecione Email address or phone number e escolha Allow email addresses

    • Clique Next step

    • Defina o comprimento mínimo da senha e as configurações de complexidade desejadas

    • Certifique-se de Allow users to sign themselves up

    • Clique Next step

    • Nesse exemplo, deixe a próxima etapa como está. Usaremos o Vonage para a autenticação de duas etapas (2FA)

    • Clique Next step

    • Selecione uma FROM email address ARN opção no menu suspenso. Isso pressupõe que você já tenha criado uma identidade no Amazon Simple Email Service (SES)

    • Adicione um FROM email address conforme desejar.

    • Deixe o restante desta página inalterado. No entanto, recomendo que você remova os pontos finais das mensagens de e-mail. Isso evita que o destinatário use, por engano, o ponto final como parte da senha temporária.

    • Clique Next step

    • Pule a adição de tags clicando em Next step

    • Pule os dispositivos clicando em Next step

    • Clique no link para Add an app client

    • Dê um nome ao cliente do aplicativo

    • Desmarque a caixa de seleção para Generate client secret

    • Marque as demais caixas

    • Clique Create app client

    • Clique Next step

    • Ignore os gatilhos clicando Next step

    • Clique Create pool

Atualizar o ambiente

Renomeie o .env.default para .env e atualize os valores conforme necessário:

AWS_PROFILE=default AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_VERSION=latest AWS_REGION=us-east-1 AWS_CLIENT_ID= AWS_USERPOOL_ID= NEXMO_API_KEY= NEXMO_API_SECRET=

Todos os marcadores de lugar indicados por <> no exemplo acima precisam ser atualizados. Atualize os demais conforme necessário.

Lançar ou implantar

Teste o aplicativo executando-o localmente com o servidor web integrado do PHP, usando o comando:

php -S localhost:8080

Acesse a página inicial indo para http://localhost:8080 em um navegador da web.

IMPORTANTE: Embora este aplicativo funcione, ele se destina a fins educacionais e, da forma como está, ainda não está pronto para uso público.

Funcionalidade

O fluxo do aplicativo é o seguinte:

  • Na página principal, clique em Login ou Register.

    • Após o cadastro (user_register.php) o usuário é redirecionado para uma página obrigatória de alteração de senha. (login_reset.php) Nessa página, ele deve utilizar a senha temporária enviada por e-mail.

    • Após atualizar a senha temporária, o usuário é redirecionado para a página de login. (login.php)

    • A página de login é onde um novo usuário ou um usuário já cadastrado pode fazer o login.

    • Após o login bem-sucedido, o usuário é redirecionado para a página de verificação da autenticação de duas etapas (2FA). (login_verify.php) Nessa página, ele digita o código de 6 dígitos enviado para o seu número de celular.

    • Após a verificação bem-sucedida da autenticação de duas etapas (2FA), o usuário é redirecionado de volta à página principal (index.php) onde percebe que agora está conectado, com a opção de sair. (logout.php)

Próximos passos

Se você tiver alguma dúvida ou encontrar algum problema, entre em contato com @VonageDev no Twitter ou fazer sua pergunta na Comunidade Nexmo no Slack. Boa sorte.

Compartilhar:

https://a.storyblok.com/f/270183/384x384/b3c7ffaf85/adamculp.png
Adam CulpEx-funcionários da Vonage

Adam é um desenvolvedor e consultor que gosta de corridas de ultramaratona, escrever em blogs e gravar vlogs, além de ajudar outras pessoas a dominar a tecnologia para realizar coisas incríveis, movido por um desejo insaciável de orientar e ajudar.