Magento 2バックエンドセッションのタイムアウト


53

Magento 1.xでは、バックエンドセッションのタイムアウトは次の方法で設定されました。
Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds)

最初は、Magento 2.0でこれを設定する方法が質問でしたが、Magento 2.0とMagento 2.1には違いがあるようです。

Magento 2.0の場合:Arkadii Chyzhovは、これを設定する方法を指摘しました(以下を参照)。

Magento 2.1の場合:fschmenglerは解決策を提案しています(以下を参照)。

ただし、M 2.1はバックエンドを介した簡単なソリューションを提供していないようです。誰もがM 2.1の追加ソリューションを思いつくことができますか?

回答:


82

「ストア」>「設定」>「構成」>「詳細」>「管理」>「セキュリティー」>「管理セッション存続時間(秒)」

また、このパラメータをデータベースに直接設定する可能性があり、パスの下に値を置くだけです

admin / security / session_lifetime

テーブルcore_config_data

更新

Magento 2.1管理者Cookieの有効期間= [ストア]> [設定]> [構成]> [詳細設定]> [管理]> [セキュリティ]> [管理セッションの有効期間(秒)] またはユーザーがブラウザーを閉じるまで

以来Magentoの2.1管理者Cookieの紹介寿命、「ブラウザを閉じるときに期限切れになる」と一緒での値 Stores >Settings > Configuration > Advanced > Admin > Security > Admin Session Lifetime (seconds)。つまり、そのセッションの有効期間はStores > Settings > Configuration > Advanced > Admin > Security > Admin Session Lifetime (seconds)、ブラウザが閉じられているとき、または閉じられているときの値に等しくなります。

または、fschmenglerの答えで提案されているように、管理Cookieに新しい値を設定できます


M2 Webサイトのレイヤーナビゲーションの機能を調整することに興味がありますか?
エルスデンIep 16

@elsdenIep pls。プロファイルで私の連絡先情報を見つける
Arkadii Chyzhov

その値のデータベース内の列が何であるか知っていますか?プログラムで変更できますか?
jojman

50400に設定しましたが、約20分後にログアウトします
。...-OZZIE

@ArkadiiChyzhov下の私の答えを参照してください:)
オジー

16

管理プロセスの理解を深めるために、添付画像のスクリーンショットを確認してください。

[ストア]、[設定]、[構成]、[詳細設定]、[管理者]、[セキュリティ]、[管理セッションの有効期間(秒)]の順に移動します。

そしてスクリーンショットを確認してください。 ここに画像の説明を入力してください


10

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の有効期間を延長する場合は、この値も増やす必要があります。


このセキュリティ上の理由を説明していただけませんか。私の観点から、管理者セッションのライフタイムを定義し、2.1から暗黙的にCookieのライフタイムに依存する「admin / security / session_lifetime」を使用している場合、管理者のCookieライフタイムを0に設定すると、矛盾が生じ、明らかな動作ではありません。
Arkadii Chyzhov

1
管理者が「ログアウト」せずにウィンドウを閉じ、同じPCにアクセスする人がすでにログインしている場合を防ぐためだと思いました。これは重大な脅威ではなく、悪い決定であることに同意しますこの「機能」をこの非明白にする。
ファビアンシュメングラー

しかし、今、責任あるコミットを検索し、これを見つけました:github.com/magento/magento2/commit / ...「MAGETWO-49092:管理者ログインページの無効なフォームキー」または偶発的で、少なくとも文書化されていない副作用。
ファビアンシュメングラー

私のセッションはブラウザを閉じずに期限切れのままなので、さらに継続する必要があります。
マットコセンティーノ

1
@Volvoxは慎重に見てください。プラグインは、setCookieLifetimeパラメータ付きのパブリックメソッド
Fabian Schmengler

6

ここで注意してください、受け入れられた答えは動作しますが、これがphpで設定されている場合、magento 2はデフォルトのphpフォルダーを使用してセッションファイルを保存します。

09,39 *     * * *     root   [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean

次に、これはphpインストールによってシステムcronに追加されます。

だから、あなたはどちらか

  • そのcronを無効にします
  • またはそれ以上:gc_maxlifetimephp.iniの増加(これが上限になるため)

2

設定を変更しない別のソリューションはauto refresh addon、ブラウザにany をインストールし、 その時間(60秒)を設定することです。

セッションが6秒ごとに自動更新されるため、セッションの有効期限が切れず、別のタブで作業を開始できます。

私は使用しEasy Auto Refresh、それは私のためにうまく機能します。


そのような「解決策」で愚かであってはいけません。その完全に受け入れられない。
セリオ

2

WebとDBに複数のVM /サーバーを使用していて、時刻が同期していない場合にも問題が発生しました。

したがって、上記のすべてのオプションが機能しない場合は、WebおよびDBに複数のサーバーを使用しているときに、2つのサーバーのタイムスタンプ/日付を確認してください。


1

理由はわかりませんが、バックエンドから管理セッションの有効期間を設定できない人がいるため、いくつかの解決策を見つけました。

  1. php.iniで、session.gc_maxlifetimeを1440から任意の秒数に変更します。(このソリューションは私のために働いて、magento 2.2.0および2.2.1でテストされました)

  2. .htaccessで「php_value session.gc_maxlifetime 28800」を追加するか、希望する秒数に追加します。

  3. ライフタイムを手動で設定する。ゴーのベンダー/ Magentoの/モジュール-暗号化キーの/ etc / config.xmlの 900Sからあなたが望む秒のどんな数にして変化します。

この解決策の1つが他の人にも役立つことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.