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!

Foi útil?

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 
  1. No painel de administração vá para Sistema -> Configuração -> Web-> Gerenciamento de Cookies de Sessão
  2. Defina a configuração do Gerenciamento de Cookies conforme mostrado acima
  3. Salve a configuração e limpe o cache do Magento
  4. Reinicie seu servidor web para limpar as variáveis ​​PHP caso você tenha feito a alteração diretamente no banco de dados MYSQL
  5. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top