私はプレイバージョン2.6.2を使用しています。アプリケーションには直接ログインはありません。セッションを作成する別のアプリケーションと1つのクッキー名が PLAY_SESSION
であり、このクッキーは私がレスポンスヘッダーに追加しているので、直接Playアプリケーションにログインできます。Play FrameworkログアウトCookie破棄Java
ブラウザでは、名前がPLAY_SESSION
であり、そのパス値が最初のアプリケーションコンテキストパス(例:"/"
)のCookieであることがわかります。
問題はユーザーがログアウトするたびに、再生アプリケーションのコンテキストパス(例:"/test"
)と異なるパスを持つPLAY_SESSION
と同じ名前のCookieがもう1つ作成されます。同じ名前のブラウザーで使用できる2つのCookieがありますが、問題の原因となっている2つの異なるパス値があります。
Playで生成された新しいCookieを削除するにはどうすればよいですか?私は、ログアウトのコードは次のようであるHttp.Context.current().response().discardCookie("PLAY_SESSION", "/test");
で試してみました:
DefaultLogoutLogic<Result, PlayWebContext> logoutLogic = new DefaultLogoutLogic<>();
final PlayWebContext playWebContext = new PlayWebContext(ctx(), playSessionStore);
Result result = logoutLogic.perform(playWebContext, config, config.getHttpActionAdapter(),
"/v3/logout-callback", null, true, true, false);
すべてのヘルプは高く評価されます。実装はJavaで実装されています。