def loginPost = Action { implicit request =>
Form(single(
"openid" -> nonEmptyText
)).bindFromRequest.fold(
error => {
Logger.info("bad request " + error.toString)
BadRequest(error.toString)
},
{
case (openid) => AsyncResult(OpenID.redirectURL(openid, routes.Application.openIDCallback.absoluteURL())
.extend( _.value match {
case Redeemed(url) => Redirect(url)
case Thrown(t) => Redirect(routes.Application.login)
}))
}
)
}
def openIDCallback = Action { implicit request =>
AsyncResult(
OpenID.verifiedId.extend( _.value match {
case Redeemed(info) => Ok(info.id + "\n" + info.attributes)
case Thrown(t) => {
// Here you should look at the error, and give feedback to the user
Redirect(routes.Application.login)
}
})
)
}
の中にOpenID.redirectURL(openid, routes.Application.openIDCallback.absoluteURL())
みたいな所あるけど、2.1のFutureにextendなんてないので適宜書き換えましょう。
.extend