Magento 2.1+のソリューション
Magento 2.1以降、管理セッションの有効期間は常に「セッション」、つまりブラウザが閉じられるまでです。このされています セキュリティ上の理由で導入された可能性があります。
関連するコードはMagento\Backend\Model\Session\AdminConfig
次のとおりです。
/**
* Set session cookie lifetime to session duration
*
* @return $this
*/
protected function configureCookieLifetime()
{
return $this->setCookieLifetime(0);
}
この動作を変更する場合は、次のインターセプターメソッドを使用して、このクラスのプラグインを追加できます。
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];
}
where $this->scopeConfig
は\Magento\Framework\App\Config\ScopeConfigInterface
、コンストラクタパラメータを介して注入されたのインスタンスです。
この方法では、フロントエンドと同様に、Cookieの有効期間が構成から使用されます。
[ストア]> [構成]> [詳細設定]> [管理セキュリティ]> [セッション有効期間]の構成は、Cookieに影響を与えないことに注意してください。Redisセッションの有効期間を決定するために使用されるため、Cookieの有効期間を延長する場合は、この値も増やす必要があります。