Configurações do Magento 2

Desativar o 2FA do Magento 2 no ambiente local sem quebrar o admin

Dump de produção restaurado na máquina, você abre o /admin e o Magento pede o código do autenticador. O e-mail com o QR nunca vai chegar, porque o ambiente local não manda e-mail. Resolve na CLI — e só no local: em produção, admin sem dois fatores é convite pra tomarem o painel.

Os dois módulos têm que cair juntos

Do 2.4.6 em diante não basta derrubar o Magento_TwoFactorAuth. A Adobe separou a integração com o Adobe IMS num módulo próprio, o Magento_AdminAdobeImsTwoFactorAuth, que pede magento/module-two-factor-auth no composer.json dele. Desligar só um faz o comando abortar reclamando de dependência. Os dois no mesmo module:disable resolvem:

cd /var/www/loja
bin/magento module:disable Magento_TwoFactorAuth Magento_AdminAdobeImsTwoFactorAuth
bin/magento module:status Magento_TwoFactorAuth
bin/magento cache:flush

Se a cópia está em modo production, o cache:flush não basta — o próprio comando avisa que os arquivos gerados foram limpos e manda rodar o setup:di:compile. Sem isso o admin volta com erro de classe não encontrada. Se o módulo tinha view files, o module:disable ainda aceita a flag –clear-static-content.

A armadilha do app/etc/config.php

module:disable não é configuração de ambiente: ele grava 0 na lista de módulos do app/etc/config.php, arquivo que na maioria dos projetos está versionado no Git. Commitou sem olhar e o próximo deploy leva o dois fatores desligado pra loja de verdade.

O que eu faço aqui é desligar, trabalhar e devolver o arquivo antes de subir qualquer coisa, com um git checkout app/etc/config.php. Se o time inteiro usa a mesma base, vale combinar que esse arquivo nunca entra em commit de tarefa.

Precisa manter o 2FA ligado e só perdeu o segredo de um usuário? O Magento_TwoFactorAuth expõe security:tfa:reset, security:tfa:providers e security:tfa:google:set-secret. Um bin/magento list security mostra o que a sua versão tem — dá pra resetar o provedor de um admin específico sem derrubar o módulo pra todo mundo.

Post Recentes

Campo bloqueado no admin do Magento 2: config travada pelo env.php

O campo aparece cinza no painel avisando que o valor vem de arquivo? Descubra o caminho da chave, remova do…

13 horas atrás

array_filter no PHP apaga o 0 junto: como filtrar só o que é vazio

Chamar array_filter sem callback descarta 0, '0' e false junto com os vazios. Veja o callback certo, o ARRAY_FILTER_USE_BOTH e…

1 dia atrás

413 Request Entity Too Large no WordPress: ajuste nginx e PHP-FPM juntos

O upload do tema ou do vídeo morre com 413 e o php.ini não resolve? Quem corta é o nginx:…

2 dias atrás

Apagar dados do cliente no WooCommerce sem perder o histórico do pedido

O cliente pediu exclusão pela LGPD mas a nota fiscal precisa ficar guardada. A saída é anonimizar o pedido, não…

3 dias atrás

Timeout do PHP-FPM na chamada de IA: tire do request e jogue no CLI

504 no nginx quando a API de IA demora? Quem desiste primeiro é o nginx, não o PHP. Enfileire o…

3 dias atrás

Erro crítico neste site: usar o modo de recuperação do WordPress 6.9

O site caiu com erro crítico depois de atualizar um plugin e o e-mail de recuperação não chegou? Force um…

4 dias atrás