-2

我现在有一个方法可以验证用户名和密码并为会话返回一个唯一的 Ticket Option[String]:User.authenticate(username, password)。

我正在尝试从 zentask 示例开始工作。我希望能够验证用户名和密码,然后将票证放入一个名为 sessiontoken 的会话参数中。通过我现在正在做的事情,我最终得到了会话变量 sessiontoken 中的用户名而不是票证值。

val loginForm = Form(
    tuple(
      "username" -> text,
      "password" -> text
    ) verifying ("Invalid username or password", result => result match {
      case (username, password) => 
         User.authenticate(username, password).isDefined
    })
  )


def authenticate = Action { implicit request =>
    loginForm.bindFromRequest.fold(
      formWithErrors => BadRequest(html.login(formWithErrors)),
      token => Redirect(routes.Application.index).withSession("sessiontoken" -> token._1)
    )
  }
4

1 回答 1

1

您的问题是loginForm您拥有的是返回一个带有用户/密码的元组。您正在执行身份验证以进行验证,但您没有映射到令牌。

如果您希望表单返回令牌,您可能希望使用mapping而不是。tuple

于 2013-01-11T00:56:25.477 回答