È possibile che a volte il tempo in cui la sessione di amministrazione è attiva sia troppo breve.
Come modificare il tempo necessario per disconnettersi automaticamente dal back-end?
È possibile che a volte il tempo in cui la sessione di amministrazione è attiva sia troppo breve.
Come modificare il tempo necessario per disconnettersi automaticamente dal back-end?
Risposte:
C'è una voce di menu per questo in:
Sistema> Configurazione> Avanzate> Ammin.> Sicurezza> Durata sessione (secondi)
Controlla anche le variabili di ambiente php
<seconds>
<seconds>
Per assicurarti di modificare il php.ini corretto, crea un semplice file "check.php" con il seguente contenuto:
<?php
phpinfo();
?>
, posiziona il file nella tua home directory magento, chiamalo dal tuo browser (URL / check.php) e controlla queste impostazioni.
Per maggiori informazioni guarda qui .
Per Magento 2 può essere trovato nel pannello di sinistra nell'amministratore.
Negozi> Configurazione> Avanzate> Ammin.> Sicurezza
Admin Session Lifetime
(secondi) opzione nella finestra principale.
Il valore predefinito è 900 per Magento 2. Per 1 ora impostato su 3600
(60 secondi * 60 minuti).
È necessario configurarlo nella "Configurazione predefinita" invece di selezionare un sito Web o una vista negozio per l'opzione di visualizzazione negozio. Ho provato a usarlo nella vista di un negozio tramite il menu a discesa in alto a sinistra e l'opzione non c'è. Ha senso poiché si tratta di una configurazione di amministrazione.
Nota che questa impostazione non ha alcun effetto sulla durata dei cookie almeno da Magento 2.1
Un'altra soluzione semplice senza modificare alcuna impostazione è installarne una auto refresh addon
per il browser e impostarne l'ora (60 secondi).
Aggiorna automaticamente la pagina ogni 6o secondo, il che impedisce alla durata della sessione di scadere e possiamo iniziare a lavorare su un'altra scheda.
Ho usato Easy Auto Refresh
e funziona bene per me.
Sistema -> Configurazione -> Generale -> Web -> Gestione dei cookie di sessione
Durata dei cookie: modifica questo valore (ovvero: 86400).
A partire da Magento 2.1, la durata della sessione di amministrazione è sempre "sessione", ovvero fino alla chiusura del browser. Questo è stato introdotto per motivi di sicurezza.
Il codice pertinente è in Magento\Backend\Model\Session\AdminConfig
:
/**
* Set session cookie lifetime to session duration
*
* @return $this
*/
protected function configureCookieLifetime()
{
return $this->setCookieLifetime(0);
}
Se si desidera modificare questo comportamento, è possibile aggiungere un plug-in per questa classe con il seguente metodo intercettore:
public function beforeSetCookieLifetime()
{
$lifetime = $this->scopeConfig->getValue(
\Magento\Framework\Session\Config::XML_PATH_COOKIE_LIFETIME,
\Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT);
return [$lifetime, \Magento\Framework\Session\Config::COOKIE_LIFETIME_DEFAULT];
}
Dove $this->scopeConfig
dovrebbe essere un'istanza di \Magento\Framework\App\Config\ScopeConfigInterface
, iniettata tramite il parametro del costruttore.
In questo modo la durata del cookie viene utilizzata dalla configurazione, proprio come nel frontend.
Nota che la configurazione in Negozi> Configurazione> Avanzate> Sicurezza amministratore> Durata sessione non ha più alcun effetto sui cookie! Viene utilizzato per determinare la durata della sessione Redis, quindi se si aumenta la durata dei cookie, è necessario aumentare anche questo valore.
Sunovisio fornisce in realtà un'estensione che consente di mantenere viva la sessione di amministrazione mentre si sta lavorando e che indipendentemente dal timeout della sessione.
Puoi verificarlo qui: http://ecommerce.sunovisio.com/index.php/admin-keep-alive-1-1-0.html
Spero che questa estensione ti aiuti a lavorare con il tuo pannello di amministrazione di Magento!
In MySQL:
tabella: core_config_data
percorso: admin / security / session_lifetime
sì, ma prima devi assicurarti che la posizione di magento e l'ora del server siano nello stesso fuso orario. assicurati anche che non ci siano sessioni. * sostituisce php.ini