No Magento 1.x, o tempo limite da sessão de back-end foi definido através de:
Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds)
Inicialmente, minha pergunta era como definir isso no Magento 2.0, mas aparentemente existem diferenças entre o Magento 2.0 e o Magento 2.1
Para o Magento 2.0: Arkadii Chyzhov apontou como definir isso (veja abaixo).
Para o Magento 2.1: o fschmengler sugeriu uma solução (veja abaixo).
No entanto, o M 2.1 parece não fornecer uma solução direta por meio do back-end. Alguém pode criar uma solução adicional para o M 2.1?
Verifique a captura de tela da imagem anexada para entender melhor o processo administrativo.
Vá para Lojas-> Configurações-> Configuração-> Avançado-> Admin-> Segurança-> Tempo de Vida da Sessão do Administrador (segundos)
E verifique a captura de tela.
fonte
Solução para Magento 2.1+
Desde o Magento 2.1, a vida útil da sessão de administrador é sempre "sessão", ou seja, até o navegador ser fechado. este
foipode ter sido introduzido por razões de segurança.O código relevante está em
Magento\Backend\Model\Session\AdminConfig
:Se você deseja alterar esse comportamento, pode adicionar um plug-in para esta classe com o seguinte método interceptador:
Onde
$this->scopeConfig
deve ser uma instância de\Magento\Framework\App\Config\ScopeConfigInterface
, injetado via parâmetro construtor.Dessa forma, a vida útil do cookie é usada na configuração, assim como no frontend.
Observe que a configuração em Lojas> Configuração> Avançado> Segurança do administrador> Tempo de vida da sessão não tem mais efeito sobre os cookies! Ele é usado para determinar a vida útil da sessão Redis; portanto, se você aumentar a vida útil do cookie, também deverá aumentar esse valor.
fonte
setCookieLifetime
, um método público com parâmetrosUma observação aqui, a resposta aceita funciona, no entanto, o magento 2 usa a pasta php padrão para armazenar arquivos de sessão, se você tiver isso configurado no php:
então isso é adicionado ao cron do sistema pela instalação do php.
Então você pode
gc_maxlifetime
no php.ini (como esse será o limite superior)fonte
Outra solução sem modificar nenhuma configuração é instalar qualquer
auto refresh addon
para o seu navegador e definir seu tempo (60 segundos).Ele atualizará automaticamente a página a cada 6o segundos, o que impede que a vida útil da sessão expire e podemos começar a trabalhar em outra guia.
Eu usei
Easy Auto Refresh
e funciona bem para mim.fonte
Se você estiver usando várias VMs / servidores para web e db e o tempo não for sincronizado, também causará o problema.
Portanto, se todas as opções acima não funcionarem, verifique a data / hora dos dois servidores quando você estiver usando vários servidores para web e db.
fonte
Não sei por que, mas para alguns de nós, definir a duração da sessão de administrador do back-end não funciona, então encontrei algumas soluções:
No php.ini, mude session.gc_maxlifetime de 1440 para o número de segundos que desejar. (Esta solução funcionou para mim, testada no magento 2.2.0 e 2.2.1)
Em .htaccess, adicione "php_value session.gc_maxlifetime 28800" ou ao número de segundos que desejar.
Definindo manualmente a vida útil. Vá para vendor / magento / module-encryption-key / etc / config.xml e mude de 900 para o número de segundos que desejar.
Espero que uma dessas soluções funcione para outros também.
fonte