Scala Play会话始终为空

时间:2016-09-04 00:15:20

标签: scala session playframework-2.0

我正在尝试在Play中创建一个基本的Web登录/身份验证系统。基于Play文档我应该通过Play的Session cookie在请求中保存数据;这就是我的登录信息:

  def login() = Action.async(parse.json) { implicit request =>
    implicit val loginInfoReads: Reads[LoginInfo] = Json.reads[LoginInfo]
    val newSession = request.session +
      ("test" -> "yep")
    // @todo: add real error handling
    val unauthedUser = request.body.validate(loginInfoReads)
      .getOrElse(throw new Exception("Something went wrong with the login request"))
    UserService.authAndGetUser(unauthedUser.email, unauthedUser.password).map { res =>
      Ok(res.name).withSession(newSession)
}

我可以在Chrome开发工具中看到响应Cookie中包含的Cookie,但是当我发出后续请求以获取会话中的数据时,我得到一张空地图:

Logger.debug(request.session.data.toString)

日志:

Map()

并尝试通过request.session.get(“test”)访问“test”失败。

我在这里缺少什么?为什么我的会话数据不会跨请求持续存在?

由于

1 个答案:

答案 0 :(得分:0)

原来这不是Scala / Play问题,在点击localhost时Chrome和Cookie更常见的问题。以下是为我解决的问题:

https://stackoverflow.com/a/39233628/747340