我正在尝试在 Play Framework 中创建一个新会话,但它似乎并没有坚持下去。
获得 OpenID 结果后,我想将它们重定向回索引(无论如何现在),以及他们刚刚返回的 OpenID 信息。
Redirect(routes.Application.index).withSession(
"id" -> info.id,
"email" -> info.attributes.get("email").getOrElse("unknown@unknown.com"),
"timestamp" -> (System.currentTimeMillis() / 1000L).toString)
这将调用以下函数:
def index = Action { implicit request ⇒
Ok(html.index(request))
}
但是,根据 Eclipse,隐式请求具有空 cookie 和空会话。这里发生了什么?
如果有帮助,这是 OpenID 信息的完整功能:
def openIDCallback = Action { implicit request ⇒
AsyncResult(
OpenID.verifiedId.extend(_.value match {
case Redeemed(info) ⇒ {
Redirect(routes.Application.index).withSession(
"id" -> info.id,
"email" -> info.attributes.get("email").getOrElse("unknown@unknown.com"),
"timestamp" -> (System.currentTimeMillis() / 1000L).toString)
}
case Thrown(t) ⇒ {
// Here you should look at the error, and give feedback to the user
Redirect(routes.Application.index)
}
}))
}