以下のコードのように、アプリケーションで Play フレームワークを使用してセッションを処理しました。
def login = Action {
{ implicit request =>
val email = request.body.asFormUrlEncoded.get("email")(0)
val password = request.body.asFormUrlEncoded.get("password")(0)
loginForm.bindFromRequest.fold(
errors => BadRequest(html.login(errors,"Please enter valid username password")),
//contact => Ok(html.login(loginForm,SignUpProcess.login(email,password)))
contact => Redirect(routes.Application.home).withSession("email" -> email,"password" -> password)
)
}
}
def index = Action { request =>
request.session.get("email").map{ user =>
Redirect(routes.Application.home).withSession("email" -> user)
}.getOrElse{
Ok(views.html.login(loginForm,"Enter username password to login"))
}
}
セッションのタイムアウトを追加する必要があります。Play のドキュメントでは、
ユーザーが Web ブラウザーを閉じると期限切れになる、セッションの技術的なタイムアウトはありません。特定のアプリケーションの機能的なタイムアウトが必要な場合は、タイムスタンプをユーザー セッションに保存し、アプリケーションの必要に応じて使用します (たとえば、最大セッション期間、最大非アクティブ期間など)。
タイムスタンプをユーザー セッションに追加し、最大 insctivity 期間を設定する方法は?