我正在编写一种在用户进行身份验证后正确设置会话 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”部分,那么它运行良好。如果我将“重定向”语句从模式匹配代码中移出,则可以正常工作。为什么它不能像我上面所说的那样工作,我该如何解决?