2012-02-09 5 views
1
  1. 我々は、サイトが匿名ユーザーができるようにする「はず」された2.0.6
  2. CakePHPのフレームワークのバージョンを使用している「カートに入れます。」
  3. ケーキのネイティブセッションクラスを使用してセッションIDを使用して、匿名ユーザーの情報をdbテーブルに格納しています。
  4. ユーザーはチェックアウトになると、我々はお願いしたいと思います

ISSUE「は、あなたがその場合は、アカウントを作成するにはログインまたはnoに[はい]をクリックしない、現在のメンバーである?。」:cakephpの認証セッションの再生

ユーザーは何を選択していても、ログインするか、新しいユーザー/パスを作成してからログインして、cakephpにセッションIDを再生成させる必要があります。これにより、新しいセッションでは、ユーザーが匿名で5分前にカートに追加した内容を把握することが不可能になっています。つまり、匿名ユーザーのセッションIDは、匿名ユーザーとlogin/create-userの間で変更され、ログイン後のカートを識別することは不可能になります。

このシナリオでは、cakephpがこのシナリオでセッションを再生成しないようにする方法や、注文フローを維持しながら私たちがやろうとしていることを達成するためのより良い方法がありますか?ログイン/作成)

+0

[This(http://stackoverflow.com/questions/25690140/preserve-session-id-after-login-cakephp)が解決策になる可能性があります。 –

答えて

1

ショッピングカートはCookieに保存されていないことが多いためです。そうすれば、認証後に保存された情報を簡単に取得できます。

セッションを使用してこのデータを保存することをお勧めする場合は、Security.level設定を「低」に設定することを検討してください。これにより、CakePHPがセッションIDを再生成しないようにする必要があります。

+0

これをmediumに設定すると、更なる検査で同じ効果があります。 –

+0

は、secuirtyをlowに変更しました。また、dbベースのセッションも使用しています。 –

+1

あなたはこれを解決するためのより良い方法を見つけることができましたか?セキュリティレベルを低く設定せずに – Rohan210