appengine-web.xmlファイルでsessions-enabledをtrueに設定することで、セッションを有効にできます。ただし、GAEによって実装されたセッションは、ブラウザを閉じた後も永続的ではありません。私の質問は、「remember me」機能を実装できるように、セッションを永続的に保つ方法です。Pythonライブラリはたくさんありますが、Java用のライブラリは見つかりませんでした。ご助力ありがとうございます!
2 に答える
これを行う一般的な方法は、一意のランダム キーをユーザーに関連付け、それを永続的な Cookie に保存し (Cookie.setMaxAge()
この Cookie を有効にしておく秒数と共に使用します)、この Cookie をユーザーに送信することです。
HttpServletResponse.addCookie
(ユーザーに Cookie を送信するため) とHttpServletRequest.getCookies()
(クライアントから Cookie を取得するため)については、javadoc を参照してください。
コメントを回答としてマークすることはできないため (また、コメントを完全に見逃してしまう人もいる可能性があります)、上記の JB ごとの具体的な解決策を指摘します。を使用してセッション ID を取得しthis.getThreadLocalRequest().getSession().getId()
ます。JSESSIONID
Cookies.setCookie(...) と同様に、sid を Cookieに保存します。
これにより、GAE によって作成された Cookie が上書きされ、同じセッション ID が保持されますが、有効期限が適用されます。ただし、これを使用する方法には注意してください。攻撃を受けやすい (セッション ハイジャックと XSS を調べてください)。