
Compartilhar:
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.
AWS Cognito Verify com PHP
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
PHP 7.4 (atualização
serverless.ymlpara outras versões)O Composer está instalado globalmente
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:
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 settingsSelecione
Email address or phone numbere escolhaAllow email addressesClique
Next stepDefina o comprimento mínimo da senha e as configurações de complexidade desejadas
Certifique-se de
Allow users to sign themselves upClique
Next stepNesse exemplo, deixe a próxima etapa como está. Usaremos o Vonage para a autenticação de duas etapas (2FA)
Clique
Next stepSelecione uma
FROM email address ARNopção no menu suspenso. Isso pressupõe que você já tenha criado uma identidade no Amazon Simple Email Service (SES)Adicione um
FROM email addressconforme 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 stepPule a adição de tags clicando em
Next stepPule os dispositivos clicando em
Next stepClique no link para
Add an app clientDê um nome ao cliente do aplicativo
Desmarque a caixa de seleção para
Generate client secretMarque as demais caixas
Clique
Create app clientClique
Next stepIgnore os gatilhos clicando
Next stepClique
Create pool
Atualizar o ambiente
Renomeie o .env.default para .env e atualize os valores conforme necessário:
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:
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
LoginouRegister.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.