1

symfonyのアプリケーションにはいくつかのモジュールがあります。安全なモジュールは1つだけです:オン。また、layout.phpがあり、その上に、アプリケーションの各モジュールのリンクを表示するためのタブ付きメニューが含まれています。このメニューには、ユーザーがログインしていない場合は「サインイン」へのリンクが表示され、ユーザーがログインしている場合は「ログアウト」へのリンクが表示される部分もあります。

安全なモジュールにアクセスしようとすると、サインインページに転送されます。正常にログインでき、Cookieが作成されます。他のモジュールに移動すると、メニューに「ログアウト」リンクが表示されます。

ブラウザを閉じて(Cookieは15日で期限切れになるように設定されています)、ブラウザを再度開いて、ホームページモジュールに移動するとします。ログインする必要がありますが、メニューに「サインイン」と表示されます(ユーザーがログインしていないと考えます)。secure:onモジュールにアクセスしようとすると、ページがリロードされると、Cookieが読み取られるようになったため、メニューに「ログアウト」リンクが表示されます。

私が見つけたのは、Cookieが設定されていて、ブラウザを閉じてホームページで再度開くと、2つのCookieがあります。1つは「sfRemember」、もう1つは「symfony」です。セキュアモジュールにアクセスしてCookieを読み取った後、「symony」のCookieは、ホームページに表示されるものとはまったく異なります。つまり、同じCookieを読み取らないため、「ログアウト」リンクは表示されません。セキュアモジュールにアクセスしてください。その安全なモジュールを開いた後、ホームページに戻ると、アプリケーションはCookieを正常に読み取り、「ログアウトが表示されます」。

私は本当にこれにアプローチする方法の手がかりがありません。どんな助けでも大歓迎です!

4

3 に答える 3

0

私は前にこれに出くわしました。

私のコードは機能していますが、このチケットに記載されている説明はおなじみのようです。

http://trac.symfony-project.org/ticket/6607

于 2009-06-29T22:20:07.683 に答える
0

そのチケットで解決策を試しましたが、次のようになりました。

致命的なエラー: クラス 'sfGuardRememberMeFilter' が見つかりません

symfony 1.2 と最新バージョンの sfGuardPlugin を使用しています。そのクラスは何を削除しましたか?また、アプリケーションの settings.yml で、この問題の解決に役立つ場合に備えて、次のモジュールを有効にします。

プラグインまたは symfony コアからアクティブ化されたモジュール

enabled_modules: [デフォルト、sfGuardAuth]

ご協力いただきありがとうございます!

于 2009-07-17T18:39:52.600 に答える
0

オプションで、filters.yml で「Remember Me」フィルターを有効にします。

セキュリティ: クラス: sfGuardBasicSecurityFilter

于 2009-08-06T00:02:28.217 に答える