3

私は自分のサイトに行き、DebugKit> Sessionを見て、「Auth」変数を見ることができます-正常に動作し、すべてが素晴らしいです。

ただし、2台のマシン(テスト済みの5〜7台のうち)で、Chromeでのみ、Auth変数が完全に欠落しています。これにより、ユーザーがログインしたり、リダイレクトを台無しにしたりするのを防ぎます。

Chromeのアンインストールと再インストールを試みました-Chromeのセキュリティ設定とセッション/Cookie設定が、動作する他のすべてのコンピューターと同じであることを確認しました...など(おそらく1つを逃したのですか?しかし-フレッシュインストール、 それで...)。そして、すべて同じバージョンのChromeを使用していることを確認しました。

最初は自分のコードに問題があるのではないかと思いましたが(それでも問題がある可能性があります)、「ばかげた」コンピューターの1つで別のCakeサイトにログインしようとしましたが、同じことをしました-ログに記録できません-の。

4

2 に答える 2

2

私は自分のマシンでこの問題を正確に解決することができました。

どういうわけか、私のChromeは同じドメイン(CAKEPHP)に対して同じ名前の2つのCookieを取得できたようです。

すべてのブラウザですべてのCookieがリセットされるようにするために、次のセッション構成を更新しました/app/Config/core.php

Configure::write('Session', array(
            'defaults' => 'php',
            'cookieTimeout' => 0,
            'cookie' => 'newNameSESSION',
));

セッションを識別するための新しいCookie名を明示的に設定するキー「cookie」に注意してください。この変更後、以前はログインできなかったすべてのブラウザーからアプリケーションにログオンできるようになりました。

于 2012-04-26T04:18:54.470 に答える
0

セキュリティコンポーネントと何か関係があるに違いありません。私がそれをオフにしたとき、彼らはうまくログインすることができました。

まだ正確に問題が何であるかはわかりませんが、私のサイトをCakePHP 2.2ベータにアップグレードしました、そしてそれは今のところ問題ではありません

リリースノートはこちらです。

2.1.2安定版リリース(私は2.1を使用していました)のリリースノートの一部を次に示します。これらは、問題と関係がある可能性のあるSessions/Authなどに関連するものです。

  • セッションが空の場合、AuthComponentはデフォルトのリダイレクト場所としてloginRedirectを使用するようになりました。
  • CakeSessionへの変更は、IE8とセッションが失われる問題を解決するために元に戻されました。
  • SessionComponent :: id()は常にセッションIDを返します。必要に応じてセッションを自動開始します。
于 2012-05-04T13:07:04.977 に答える