質問

サイトwww.dragondirectsales.comにログインできることに常に奮闘していました。それはMagento 1.9.1サイトです。このサイトにはサブドメイン、cas.dragonDirectsales.comがあります。現在使用しているライブホスティングにサイトを移動するまで、すべてがうまくいった。

以来、フロントエンド(顧客ログイン)とバックエンド(管理者)の両方で、ログインしている問題と戦っています。ログインしようとすると、エラーメッセージなしで適切なログイン画面に戻るだけです。これもまた、顧客ログインのみが起こります。

起こるたびに、修正しようとしている時間を費やして、すべてのテストケースで働くことができます。それから約1ヶ月後、クライアントはそれが再び壊れていると言って、そして彼が管理セクションに何も触れなかったことを誓うのを誓います。私たちはこれを修正しなければならなかった4回目にいます、そして以前の変更はまだそこにいるように見えます、それで私はこの問題を引き起こしているもののために損失しています。

今、私は前端の安全なURLを使用してサイトを持っています。クッキーパスは空白です。 Cookieドメインは.dragonDirectsales.comです。私はHTTPのみを使用しています(iPadはこれが固定されている別のログインの問題を抱えていました)。 Cookie制限モードはNOに設定されています。

これが働いていた最後の時期の間に起こった唯一のものは、延長開発者が部分的な支払い拡張に取り組んでいたということです。モジュールのXMLから延長を完全にオフにすることができ、問題が発生する可能性があります。

任意の助けが全く評価されています!

役に立ちましたか?

解決

私はついにこれに対する答えを見つけたと思います。

トリックは、ディレクトリアプリ/コード/ローカル/メイジ/顧客/モデルを作成し、ファイルsession.phpをその中にコピーすることでした。session.phpファイルは、app / code / core / mage / customer / modelにあります。ファイルが移動したら、このセクションを見つけます。

    public function setCustomerAsLoggedIn($customer)
{
    $this->setCustomer($customer);
    $this->renewSession();
    Mage::dispatchEvent('customer_login', array('customer'=>$customer));
    return $this;
}
.

$ this-> newewsession()をコメントアウトします。セクション、それはこのように見えます:

    public function setCustomerAsLoggedIn($customer)
{
    $this->setCustomer($customer);
    //$this->renewSession();
    Mage::dispatchEvent('customer_login', array('customer'=>$customer));
    return $this;
}
.

すべてのログインクッキーを必ず消去してください。 私はこれをChrome、Firefox、そしてWindows上で、そしてiPad上のSafari、そしてすべてが魅力のように機能しました。

回答のためのこのスタック交換エントリのおかげで: 不安定なクッキー関連ログイン問題

他のヒント

Magentoは、安全なURLと無排除URLの両方に同じCookieドメインを使用するように強制する必要があります。 FirefoxまたはChromeブラウザの開発者ツールを使用して、Cookieのサイトを検査できます。この溶液をMagento 1.9.2.4

で試験した。

セッションCookie管理変数が誤って設定されていない場合Magentoは、クッキードメインが異なる2つの「フロントエンド」クッキーを作成することがあります。これは通常、Secure URLのHTTPS(つまりSSL Enabled)がある場合は、ログインプロセス中に発生します。セッションCookie管理設定の実装可能な値は次のとおりです。

Cookie Life Time: 3600
Cookie Path: /
Cookie Domain : .mydomain.com (The dot prefix is important)
Use HTTP Only : No
Cookie Restriction Mode: No 
.

  1. 管理パネルでシステム - >設定 - > Web-> Session Cookie Management
  2. 上記のようにCookie管理設定を設定します
  3. 設定を保存してMagento Cache
  4. をクリアします。
  5. Webサーバーを再起動して、MySQLデータベースの変更を直接変更した場合に備えてPHPの変数を消去します。
  6. Magentoサイトに関連付けられている既存のCookieを削除するには、ブラウザキャッシュを消去します。これは重要です。
  7. Cookieドメインのドットプレフィックスを使用することは、セキュアURL

    のために重複したクッキーが作成されないようにするために重要です。

    Cookieドメインの変更は、Magento Backentによって使用される "adminhtml" cookieにも影響します。管理者ログインの問題を防ぐために、必ずブラウザキャッシュを消去してください。

    他の回答に記載されているコアコードの変更YuがWeb Session Cookie管理構成を正しく設定する場合は必要ありません。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top