Não é possível fazer login no site Magento seguro (SSL) no front-end no Chrome
-
13-12-2019 - |
Pergunta
Tenho tido uma luta constante para conseguir entrar no site www.dragondirectsales.com.É um site magento 1.9.1.O site tem um subdomínio, cas.dragondirectsales.com.Tudo parecia bem até mudarmos o site para a hospedagem ao vivo que eles estão usando atualmente.
Desde então, temos enfrentado problemas de login, tanto no front-end (logins de clientes) quanto no back-end (admin).Se você tentar fazer login, você retornará à tela de login apropriada, sem mensagens de erro.Novamente, isso acontece apenas para logins de clientes.
Cada vez que isso acontece, passo horas tentando consertar e consigo fazê-lo funcionar em todos os casos de teste que consigo imaginar.Então, cerca de um mês depois, o cliente me enviou um e-mail dizendo que estava quebrado novamente e jurando que não mexeu em nada na seção de administração.Já é a quarta vez que preciso corrigir isso e todas as alterações anteriores parecem ainda estar lá, então não sei o que está causando esse problema.
No momento, tenho o site usando URLs seguros no front-end.O caminho do cookie está em branco.O domínio do cookie é .dragondirectsales.com.Estou usando apenas HTTP (o iPad estava tendo um problema de login separado que foi corrigido).O modo de restrição de cookies está definido como não.
A única coisa que aconteceu entre a última vez que isso funcionou e agora é que tivemos um desenvolvedor de extensão trabalhando na extensão de pagamento parcial, e não estou totalmente convencido de que o trabalho deles tenha algo a ver com esse problema.Posso desligar completamente a extensão do módulo xmls e o problema ainda acontece.
Qualquer ajuda é totalmente apreciada!
Solução
Acredito que finalmente encontrei a resposta para isso.
O truque foi criar o diretório app/code/local/Mage/Customer/Model e copiar o arquivo Session.php nele.O arquivo Session.php pode ser encontrado em app/code/core/Mage/Customer/Model.Depois que o arquivo for movido, encontre esta seção:
public function setCustomerAsLoggedIn($customer)
{
$this->setCustomer($customer);
$this->renewSession();
Mage::dispatchEvent('customer_login', array('customer'=>$customer));
return $this;
}
Comente $this->renewSession() ;seção, então fica assim:
public function setCustomerAsLoggedIn($customer)
{
$this->setCustomer($customer);
//$this->renewSession();
Mage::dispatchEvent('customer_login', array('customer'=>$customer));
return $this;
}
Certifique-se de limpar todos os cookies de login.Testei isso no Chrome, Firefox e IE no Windows e Safari no iPad e tudo funcionou perfeitamente.
Graças a esta entrada do Stack Exchange pela resposta:Problema errático de login relacionado a cookies
Outras dicas
Você precisa forçar o Magento a usar o mesmo domínio de cookie para URLs seguras e inseguras.Você pode inspecionar os cookies do seu site usando as ferramentas do desenvolvedor no FireFox ou no navegador Chrome.Esta solução foi testada no Magento 1.9.2.4
Quando as variáveis de gerenciamento de cookies de sessão não estão configuradas incorretamente, o Magento pode criar dois cookies "frontend" com domínios de cookies diferentes.Isso normalmente acontece durante o processo de login quando você tem HTTPS (ou seja,SSL habilitado) para o URL seguro.Aqui estão os valores viáveis para a configuração de gerenciamento de cookies de sessão.
Cookie Life Time: 3600 Cookie Path: / Cookie Domain : .mydomain.com (The dot prefix is important) Use HTTP Only : No Cookie Restriction Mode: No
- No painel de administração vá para Sistema -> Configuração -> Web-> Gerenciamento de Cookies de Sessão
- Defina a configuração do Gerenciamento de Cookies conforme mostrado acima
- Salve a configuração e limpe o cache do Magento
- Reinicie seu servidor web para limpar as variáveis PHP caso você tenha feito a alteração diretamente no banco de dados MYSQL
- Limpe o cache do seu navegador para remover quaisquer cookies existentes associados ao seu site magento.Isso é importante.
Usar o prefixo ponto no domínio do cookie é importante para evitar a criação de cookies duplicados para o URL seguro
Alterar o domínio do cookie também afetará o cookie "adminhtml" usado pelo back-end do Magento.Certifique-se de limpar o cache do navegador para evitar problemas de login de administrador.
Alterar o código principal conforme descrito em outra resposta não é necessário quando você define corretamente a configuração do Web Session Cookie Management.