Tudo o que quer saber antes de instalar.
Uma análise detalhada de como o Início de Sessão sem Palavra-passe (Magic Link) PrestaShop 8 e 9 funciona, porque o construímos assim e o raciocínio por trás das funcionalidades acima.
Porquê substituir a palavra-passe?
Segundo os estudos de comércio eletrónico, 30 a 40 % dos carrinhos abandonados no momento da autenticação devem-se a uma palavra-passe esquecida. E cada pedido de reposição gera um e-mail, um atraso e por vezes um pedido de apoio. O magic link elimina esse atrito: o cliente escreve o seu e-mail, recebe uma ligação, clica e fica autenticado. Mais simples para ele, menos apoio para si e um percurso de compra mais rápido.
Como funciona o módulo
Por baixo do formulário de autenticação padrão, um segundo formulário propõe a entrada por e-mail. O cliente escreve o seu endereço, um pedido AJAX gera um token aleatório de 256 bits, guarda apenas o hash SHA-256 em base de dados e envia um e-mail com o token em bruto. O cliente clica na ligação do e-mail, chega a uma página de confirmação, valida com um clique e fica autenticado na sessão do PrestaShop tal como numa entrada clássica. Os hooks de autenticação nativos são disparados, por isso todos os seus outros módulos continuam a funcionar normalmente.
Segurança pensada para produção
O token em bruto só existe no e-mail enviado. Em base de dados, apenas o hash SHA-256 é guardado. Uma fuga da tabela não dá, portanto, nenhuma ligação utilizável. Cada token é de utilização única e é marcado como consumido assim que é usado. O prazo de validade é configurável (15 minutos por predefinição, máximo de 24 horas). Uma dupla limitação de pedidos vigia o número de pedidos por endereço IP e por conta de cliente numa hora deslizante, com valores configuráveis. E a resposta AJAX é deliberadamente genérica para impedir que um atacante distinga uma conta que existe de uma que não existe.
O problema dos scanners de e-mail, e a solução
O Outlook com Safe Links, o Gmail com a sua pré-visualização, os antivírus de empresa e os proxies de segurança visitam automaticamente cada ligação dos e-mails recebidos para a analisar. Se o módulo consumisse o token no primeiro GET, esses scanners queimariam a ligação antes mesmo de o cliente poder clicar. O módulo usa por isso um fluxo em dois tempos: o GET mostra uma página de confirmação autónoma com um botão, e só o POST desencadeado pelo clique real consome o token. Os scanners não submetem formulários arbitrários, logo não conseguem queimar a ligação. É o padrão usado pelo Slack, pela Notion, pela Vercel e pela Auth0 nos seus magic links.
Página de confirmação universal
A página a que o cliente chega depois de clicar na ligação é apresentada como um documento HTML5 autónomo, independente do tema do PrestaShop. Isso garante uma apresentação perfeita em qualquer tema: Classic, Hummingbird, Warehouse, MySmartBook ou personalizado. A página é sóbria, centrada, com o nome da loja no cabeçalho, um título de boas-vindas personalizado, um botão azul de validação e uma nota de segurança. Sem dependências CSS externas, sem frameworks JavaScript carregadas, apresentação instantânea.
Multilingue automático
O módulo fornece modelos de e-mail em HTML e texto simples traduzidos em quatro idiomas: francês, inglês, espanhol e alemão. O idioma do e-mail enviado corresponde automaticamente ao idioma da conta do cliente. As cadeias de interface (formulário de pedido, página de confirmação, mensagens de erro) também são traduzidas através do sistema de tradução padrão do PrestaShop, logo personalizáveis a partir do back-office se necessário.
Configuração no back-office e estatísticas
Uma página de configuração acessível a partir do Gestor de módulos expõe todos os parâmetros: ativação, apresentação do formulário na página de autenticação, prazo de validade, limites de pedidos, redirecionamento após a entrada. Três contadores em tempo real mostram os tokens ativos, as entradas das últimas 24 horas e as ligações emitidas. Um botão permite limpar manualmente os tokens expirados. A gravação usa um padrão POST, redirect e depois GET para evitar os falsos positivos dos classificadores de phishing como o Google Safe Browsing.
Ainda não existem avaliações.