タグ付けされた質問 「session」

Magentoでのセッション管理に関する質問を示します。

7
Magento 2バックエンドセッションのタイムアウト
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の追加ソリューションを思いつくことができますか?

10
膨大になったセッションファイルをどのように処理すればよいですか?
私は、Magentoサイトを保持するいくつかのサーバーのシステム管理者として活動しており、時々セッションファイルでいっぱいになります。 これらのファイルを管理することはMagento内でできることではないと言われており、一時的に使用することはオフにできないことを意味すると思いますが、Magentoにこれらの削除を処理する方法がないのは奇妙に思えますファイル? 私の解決策は、このようなことを実行する夜間のcrontabですがfind /path/to/magento/sessions/ -name "sess*" -type f -delete、控えめに言っても気の毒です。 これらを処理する最良の方法は何ですか?

8
カートのすべてのアイテムのドロップ/カートセッションのクリア
私が突然管理するサイト(2週間前-GA統計から、現在のみ報告されている)が、カートを表示するか、チェックアウトに行くと、カートのアイテムをドロップし始めました。 一番上の「ミニカート」には、カート/チェックアウトを参照し、「カートにアイテムがありません」というメッセージが表示されるまで、ドロップダウンにアイテムが表示されます。 セッションの問題のようです。ログインしても発生しません。 「システム->ウェブ->セッション検証設定」のすべてのセッション検証オプションを削除し、「フロントエンドでSIDを使用」というオプションを有効にしました。これで問題は解決しましたが、これらの設定は過去3か月間変更されていないため、根本的な問題があることがわかります。 これは、sore-id問題の問題を示していますか?どういうわけか、サイトはどのストアIDを失い、セッション/カートデータをドロップしていますか?たぶん、いくつかのモジュールによるいくつかのオブザーバー/イベント/書き換え。 ローカルdevまたはUATサーバーで問題を再現できません。UAT上のDBはライブから2週間であるため、これはdbの問題/設定を指している可能性がありますか? 私がやろうとしていること:現在のライブデータベースをUATに移動して最新の状態にして、そこで問題を再現できるかどうかを確認しています。それが完了すると更新されます。 非ライブ領域で問題を再現できるようになったら、モジュールを体系的に無効にし、ストアIDに問題があるかどうかを確認します(2週間前に更新されたため、MageMonkeyとsweettoothで始まります) 質問は-他に何ができますか?いくつかのブレークポイントを叩き、コードをステップ実行してこの問題をトレースできるかどうかを確認できる場所へのポインターはありますか? ニスやmemcacheのような追加のキャッシュシステムはインストールされていません。サーバーは標準のcpanelインストールです。uatでテストすると、すべてのキャッシュが無効になりました。 さらに更新:デフォルトのテーマにドロップすると、再現できないようです。テーマオーバーライドフォルダーを体系的に移動しています。 また、コードをバックトラックするためにgitを使用しましたが、すべてのハッシュに問題が残っています。 更新:これに時間を費やしてからしばらく経ちました。高い作業負荷。 セッションをファイルベースに移動し、問題はなくなりました。クライアントは近い将来に複数のサーバーを使用するつもりはないので、私の作業負荷のために、これは残されました。後で私に噛み付く可能性が高いでしょう。 magentoサポートは、この問題がセッションクラスを拡張するスイートトゥースモジュールに関連していることを示唆しましたが、そのモジュールを無効にしましたが、問題は残りました。 より多くの結果が得られたら更新されます。
27 checkout  session  cart 


2
サブドメインとして複数のインスタンスに分割されたMagentoサイトの正しいCookie設定は何ですか?
問題 大規模なサイトでは、地理的な地域ごとにMagentoの個別のインスタンスを使用しているため、企業は孤立しています。例: site.com north.site.com south.site.com east.site.com west.site.com ユーザーは、ルート+地域サイトにアクセスしたり、地域サイトに直接ログインしたり、地域の資格情報を使用して(site.com)にログインしたりできます(認証システム+リダイレクトが用意されています)。 一部のユーザーは以前にログインできなかったため、エラーフィードバックを取得できません。同じ名前で異なるドメインを持つ2つのCookieがある障害を複製できます。例: 名前:フロントエンド、ドメイン:.site.com 名前:フロントエンド、ドメイン:.north.site.com Cookieを削除すると、ほとんどのブラウザーで問題が解決します。一部のブラウザではクッキーがスタックしているように見えますが、クッキーの有効期限が切れるのを待つ以外に困惑しています。 試したこと 当初、すべてのサイトの設定は空白でした(以下を参照)。これが問題を引き起こしました。私が理解しているように、すべてのサイトのドメインを「.site.com」に明示的に設定する必要があります。そのため、その名前/ドメインで存在できるCookieは1つだけです。 これにより、Magentoのどの「フロントエンド」Cookieが正しいのかが分からないという問題が解決されますか、それとも優先設定がありますか? 質問 マルチドメイン設定のためのMagentoの管理者の正しいCookie設定は何ですか? 参照:「システム>構成> Web>セッションCookie管理」


4
Magento 1 EE v 1.14.3.x(およびCE 1.9.3.x)でのセッション検証の失敗
400〜500人の訪問者と1日あたり40〜50件の注文があるMagentoショップを探しています。最近、システムがMagento EE 1.14.2.4からMagento EE 1.14.3.2にアップグレードされ、ログに奇妙な例外がいくつかあることに気付きました。 exception 'Mage_Core_Model_Session_Exception' in /var/www/.../app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:418 私はその例外を追いかけていましたが、次のセッション検証コードがセッションの検証に失敗したため、例外が発生していることを知っています。 class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object { // ... protected function _validate() { // ... if ($this->useValidateSessionExpire() && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]) && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) { このifブロックは、Magentoからの最新リリースでファイルに追加されました。これは明らかにブレーキの変更です。詳細は以下をご覧ください。 例外は非常に頻繁に発生し、1日に数十回です。しかし、上記の条件に文字通りtrueを設定しない限り、例外につながる条件を再作成することはできません。例外はほとんどの場合、製品詳細ページと1ページのチェックアウトの最後のステップで発生します。ショップはb2bショップです。製品ページを表示したり、チェックアウトしたりするには、ユーザーがログインする必要があります。つまり、セッションが無効化/期限切れになると、ユーザーはログインページにリダイレクトされます。現時点では、チェックアウト中にこの問題を修正することがより重要です。 ユーザーの観点から何が起こるか:ユーザーはカートを満杯にし、チェックアウトに進み、最後のステップに進み、「注文を送信」ボタンを押しても何も起こりません。舞台裏では、MagentoのJSはAJAXリクエストを実行し、JSはJSONを受信することを期待していますが、このエラーが発生するとログインページのHTMLが返され、JavaScriptで解析できず、何もしません。これはユーザーにとっては非常に紛らわしいです。 まあ、それは完全なユーザーシナリオではありません。ユーザーに連絡し、カートに入れて注文を送信するまでに数日待っていたと伝えました。人々は単にそれを覚えていないので、正確に何を意味するのかわかりません。 PHPセッションの有効期間-350000(秒で最大4日)Cookieの有効期間-345600(4日) 実際の質問は次のとおりです。 どのようなユーザーの行動が例外につながるのかをどのように見つけることができますか? 更新 これまでのところ、リクエストに応じて次のクラスで例外が発生することを知っていますが、残念ながら何も意味しません。 /catalogsearch/result/?q=… Mage_Core_Model_Session /checkout/cart/ Mage_Core_Model_Session /checkout/onepage/saveOrder/… Mage_Rss_Model_Session /customer/account/loginPost/ Mage_Core_Model_Session …

8
「無効なフォームキー。ページを更新してください」-管理パネルにログインできません
私は定期的に自分のサイトにアクセスしてその動作を確認し、製品の画像が表示されていないことに気づきました。インデックス作成キャッシュの問題だと思い、管理パネルにログインしてエラーを受け取りました。 「無効なフォームキーです。ページを更新してください」 他の症状は、顧客が製品をカートに追加できず、パフォーマンスが極端に低下することです。 ログ(/ var / logs)にエラーはありません この問題を解決するには、どのような追加手順を実行する必要がありますか?

1
管理ページの長時間実行リクエストが他のリクエストをブロックする
Magentoのバックエンドにログインして、長時間かかるタスク(大きなカタログでのグローバル検索、長時間実行されるデータフローなど)を実行すると、Webブラウザーはそのブラウザーのみで他の管理ページの読み込みを拒否します。なぜこれが起こるのですか?回避策として知られている科学はありますか? つまり、私が Magentoのダッシュボードページにログインする 任意のMagento管理ページで2番目のタブを開きます 最初のタブで長時間実行するグ​​ローバル検索を実行します(sleep(30)の開始時にへの呼び出しでシミュレートglobalSearchAction) 2番目のタブの再読み込みを試みます 予期される動作:2番目のタブがすぐにページコンテンツと共に読み込まれます 実際の動作:2番目のタブは、長時間実行されるグローバル検索が完了した後にのみ読み込まれます 誰も、具体的に、なぜこれが起こるのか知っていますか?(私の推測では、Magento管理コンソールのリクエストは、Magentoがブートストラップするのに必要なリソースをロックしますが、それが何なのかわかりません) 誰でも修正/回避策を知っていますか?

1
比較機能が(ログ)訪問者IDにリンクされているのはなぜですか?
プロジェクトを開始するときに最初に行うことは、クライアントにWebサイトでのユーザーログが必要かどうかを尋ねることです。技術用語Mage_Logモジュール。これまでのすべてのケースで、私は答えを得ました: いいえ。GoogleAnalyticsを使用します。 そして、次の質問は「製品を比較しますか?」です。ログテーブルは時間外に大きくなる傾向があり、Webサイトが遅くなるため、これらの質問をします。だから私は速度の問題の修正を避けたい。 2番目の質問は、製品の比較セクションがゲストの顧客のログに依存しているためです。addAction製品比較コントローラーのこれを参照してください。 if ($productId && (Mage::getSingleton('log/visitor')->getId() || Mage::getSingleton('customer/session')->isLoggedIn()) ) クライアントが製品を比較したい場合、ログを無効にすることはできません。 拡張機能を検索したり、拡張機能を構築したりすることもできますが、実際の質問は次のとおりです。比較機能がビジターIDにリンクされているのはなぜですか?これの良い結果は?ゲストの引用は、セッション内の引用のIDを参照することで適切に機能します。比較製品でも同じではないのはなぜですか?
16 session  log  compare 

1
Mage_Core_Model_Session_Abstract_Varien :: startの応答時間が長い
だから私は多くのサイトでNew Relicに気付いていました。Mage_Core_Model_Session_Abstract_Varien:: startが原因で、長いページ読み込みの多くが発生しています。私はいくつかの研究を行ったが、これについて他の誰も話していない。 キャッシュにはNginx、PHP FPM、Redis、セッションにはMemcacheを使用します。私の考えのいくつかは、多分それは永遠に取っている何かであり、セッションをロードすることが問題であるように見えるということです。または、どういうわけか、セッションに大量のデータを追加するカスタムコードがあり、巨大なセッションが発生します。 私はセッションとその管理方法に関してそれほど知識がありませんが、セッションのロックに関する記事をいくつか見つけました。しかし、私は人々が同時に多くのページを開いているとは思わない。 これらの負荷の一部は20〜30秒です。セッションに起因するこれらのタイプの長いリクエストを分析する方法について他の誰かがこれに気づいている、またはより多くの知識を持っている場合、私はちょうど興味があります。

2
バックエンドからのフロントエンドでの自動ログイン
次のシナリオを参照してください。 フロントエンドユーザーがカスタムエンティティに対してアクションを実行できるカスタムモジュールがあります。(詳細はあまり重要ではありません)。 要求は、管理者が(パスワードを持たずに)顧客アカウントでフロントエンドにログインし、顧客に対してこれらのアクションを実行できるようにすることです。 バックエンドからフロントエンドセッションを使用することはできず、フロントエンド用の永続的な自動ログインリンクを作成したくないので、これは大きなセキュリティホールになる可能性があるため、これまで私がやったことです。 顧客エンティティに空の属性を追加します。(それを呼び出しましょうlogin_key) ランダム文字列が生成されて属性に保存される管理ページにリダイレクトするボタンを顧客編集ページのバックエンドに追加しますlogin_key。 同じアクションで、管理者をこのようなフロントエンドURLにリダイレクトしautologin/index/index/customer_id/7/login_key/ajkshdkjah123123ます(前の手順で生成された値)。 フロントエンドURLでlogin_key、特定の顧客の顧客IDと一致する場合、セッションで顧客オブジェクトを設定し(ログインした状態で)login_key、URLが将来機能しないように削除します。 これでうまくいく。つまり、選択した顧客としてログインしますが、自動ログインに使用されるリンクが再度機能しません。 欠点は、2人の管理者がほぼ同時に「自動ログイン」ボタンをクリックすると、1人がログインに失敗することですが、これは許容できるリスクです。 私の主な懸念は、これが(それではなく)大きなセキュリティ問題かもしれないということです。誰かがこのアプローチで何か間違ったことを見ることができますか?またはより良いものを提案しますか? 顧客アカウントはWebサイトごとに分離できるという事実は無視してください。これは重要ではなく、簡単に管理できます。

4
解決済み-Magento 2-管理者にログインできない(エラーメッセージなし)がログイン画面で止まる
これは質問ではなく、かなり古いが繰り返し発生する問題への回答です。Magento 1.9をセットアップしていた頃、これに苦労していたことを覚えています。私はそれをどのように修正したかを完全に忘れていたので、今回は誰かがそれを必要とする場合に備えてここで私の答えを文書化しています。 問題文 基本的に、Magento 2.1ストアをセットアップし、すべてのサーバー要件を満たし、SSLを追加し、Webサイト、ストアおよびストアビューをセットアップし、ストア構成を埋めて、突然管理パネルにログインできなくなったことに気付きました。エラーはなく、ブラウザコンソールには何もありません。ブラウザChrome / Firefoxにも問題はありません。また、セッションとキャッシュをクリアして利用できないようにします。セッションとキャッシュ設定をさかのぼって答えを見つけましたが、ドキュメントに従っていましたが、まだ機能しません。

3
Magento 2:バックエンドとフロントエンドの状態/キャッシュの同期
Magento 2には、バックエンドとフロントエンドのローカルストレージ間の状態を管理するためのシステムまたは抽象化がありますか? リダイレクトURLを介してユーザーの放棄されたカートを復元する機能の移植に取り組んでいます。簡易形式では、次のようなURL http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5 識別子のエンコードされたquote_idに基づいて、現在のユーザーのカートに見積もりをロードします。 Magento 1では、これは比較的簡単でした。ユーザーのCheckoutセッション情報を正しい見積もりIDで更新する必要がありました。ただし、Magento 2はローカルストレージのしわを追加します。 Magento 2フロントエンドjavascriptアプリケーションは、ブラウザのローカルストレージデータベースに情報をキャッシュするようです。これには、ミニカートを構築するための情報が含まれます。これが意味することは、エンドユーザープログラマー(私)がバックエンドのセッションセッションIDを変更したとしても、ミニカートには古いカートデータが表示されます。 これは、バックエンドとフロントエンド全体でアプリケーションの状態を管理するための単一のAPIを知らない(または持っている?)ことから生じる問題の一例です。特定の問題のために、JavaScriptを含むHTMLページをエンドポイントでレンダリングして、ローカルストレージを手動でクリアし、ユーザーを別のページにリダイレクトしましたが、これはひどいハックのように感じます。 フロントエンドとバックエンドの間でデータを管理するためのMagento 2にAPIはありますか? バックエンドの処理中に、フロントエンドのローカルストレージキャッシュを無効にする必要があるようなことをしたシステム全体に信号を送る標準的な方法はありますか? 自動的に実行され、残りのjavascriptアプリケーションがアクセスする前にローカルストレージを操作できる新しいRequireJSモジュールをページに挿入する方法はありますか?

3
Magentoレジストリを理解する
すべてのレジストリデータはMagentoにどこに保存されているのでしょうか? 私は、シングルトンオブジェクトでさえレジストリに保存されることを知っています。レジストリは、Mageクラスの静的配列変数にすぎません。 混乱を解消するために、ここにいくつか質問があります。 レジストリはユーザーごとに異なりますか?つまり、ユーザーごと(HTTP要求ごと)に作成されますか? 例えば、 Mage::register('foo', 'Hello World'); //set a value for foo Mage::registry('foo'); //will this return hello world for all HTTP users ? レジストリデータはセッションに保存されますか?そうでない場合、Magentoはどのユーザーがレジストリデータを呼び出したかを特定しますか? Alan Stormのブログ記事と、これに関するStackOverFlowに関する回答を読んだことがあります。しかし、私は混乱を殺すことができませんでした。私の基本がめちゃくちゃだと思うなら、私を修正してください。ありがとう

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