2012-02-29 6 views
1

私は、PHPを使用するより大きなサイトの一部であるPlayサイトを持っています。 Playにログインしているユーザー(たとえば、「ログイン」ではなく「ログアウト」リンクを表示するユーザー)のために、他のサイトの動作が異なるようにしたいと考えています。ユーザーがPlay Frameworkにログインしているかどうかを確認する方法?

サードパーティのサーバーアプリケーションで、ユーザーがPlayにログインしているかどうかを判断する正しい方法は何ですか?私はちょうどPLAY_SESSIONクッキーの存在を確認する必要がありますか?

私はこのログインがこのクッキーを作成するのを見て、ログアウトするとクリアされるので、探しているようです。

答えて

2

それはあなたがログインすることによって何を意味するかによって決まる。

あなたは(再生サーバーへのアクセス)サイトを訪問意味なら、それはあなたが望むクッキーです。このクッキーは、サーバーにアクセスしてセッションIDを他のデータに保存するときに作成されます。

「サイトのコンテンツにアクセスするためにユーザー名とパスワード(または別の認証システム)を使用する」という場合は、いいえ。そのためには、おそらくセッションにユーザーIDを格納していて、これはPlayクッキーのフィールドになります。そのフィールドは、確認する必要があります。

+0

だから、私はクッキーを解析し、ユーザーフィールドを抽出する必要がありますか?私のセッションクッキーにはこの文字列が含まれています(コピーペースト用に切り詰めました): '%00username%3Amyemailaddress%40gmail.com' - このクッキー内で'%00username%3A 'を探してみることをお勧めしますか? – ripper234

+1

"このユーザーは当分の間はログに記録されています"というセッションクッキーにIDが必要です。 Pereはそれをとてもうまく説明しました;) – mandubian

+0

@ ripper234はい、「username」を確認し、そこにある場合は認証されたことを認識します。ユーザーIDが必要な場合は、値を取得します。 –

0

正しい方法はのようなGroovyコードを使ってsession["username"]の存在をテストすることだと思います。

+0

私は遊びの中で走っていないので、セッション変数に直接アクセスすることはできません。 – ripper234

+0

@ ripper234いずれにしても、この解決法は標準ではありませんが、IDはデベロッパーが望む任意の名前を使用して格納することができます –

+0

@PereVillega、もちろん、 – ripper234

関連する問題