質問

DoctrineでSymfony 1.4を使用しています。

これがばかげた質問である場合は申し訳ありませんが、「覚えておいてください」機能を機能させるために、SFDOCTRINEGUARDPLUGINの上に構築するために正確に何が必要ですか?

ユーザーにログインすると、SFREMEMBER Cookieはデフォルトの15日間の寿命で作成され、Rememberキーはプラグインのsf_guard_remember_keyテーブルに保存されます。

プラグインに微調整することなく、sfguardsecurityUser signin()メソッドはCookieを作成しますが、signout()メソッドは消去され、ログインしない限りCookieを残しません!

Signin():
sfContext::getInstance()->getResponse()->setCookie($remember_cookie, $key, time() + $expiration_age);

Signout():
sfContext::getInstance()->getResponse()->setCookie($remember_cookie, '', time() - $expiration_age);

データベーステーブルがsf_guard_userの関係としてCookieを保存することがわかりますが、Cookieがなくなっていればそれはあまり良くありません。

誰かが私がここで見逃していることを教えてくれたら感謝します。理想的には、Signout()メソッドがCookieを削除するのを妨げたら、自分でCookieを読むためにコードを書く必要がありますか、それともどこかで自動化されていますか/何とかして?ボックススタンダードSymfony 1.4とSFDOCTRINEGUARDPLUGINのインストールがあります。

それはすべて完全に間違っているように思われ、これに関するドキュメントは存在しません。

どんな助けも感謝します。

役に立ちましたか?

解決

ユーザーがログアウトした後、なぜ覚えているCookieを維持したいのですか?

現在のセッションがタイムアウトした後でも、ユーザーをログインし続けることは唯一の目的です。それは、彼がブラウザを閉じた場合(そしてセッションCookieが削除されている)、彼は次に彼がサイトにアクセスするときに自動的にCookieでログインするでしょう。

しかし、彼がログアウトした場合、私たちは彼を完全にログアウトしたいと考えています - これが、記憶のクキーをクリアすることがネッカリーである理由です。

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