ユーザーの認証後にセッション Cookie を適切に設定するメソッドを作成しています。次のように Cookie を設定しても機能しません。次のスニペットでは、'withSession' 呼び出しでエラーが発生します。
オーバーロードされたメソッド値 [withSession] は ((String, Long)) に適用できません
コード:
/**
* Process login form submission.
*/
def authenticate = Action { implicit request =>
loginForm.bindFromRequest.fold(
formWithErrors => BadRequest(views.html.login(formWithErrors)),
credentials => {
val user = models.User.findByEmail(credentials._1)
user match {
case Some(u) => {
Redirect(routes.Dashboard.index).withSession(Security.username -> u.id)
}
case None => Redirect(routes.Auth.login)
}
}
)
}
「credentials」は、ユーザーが送信した電子メールとパスワードの単なるタプルです。「withSession」部分を取り除くと、正常に動作します。'Redirect' ステートメントをパターン マッチング コードの外に移動すると、正常に動作します。上記のように機能しないのはなぜですか?どうすれば修正できますか?