我正在尝试使用 Play Framework 应用程序中实现的 Secure Social 插件编写一个 editUser 页面。更改用户名后,我无法保持登录状态。更改用户名后,当我为 editUser 表单按下提交时,会出现此问题。它进入登录页面并显示“您需要登录才能访问该页面”。所需的行为是重定向到 editUser 页面而无需重新登录。在数据库中,一切都已成功更新。这样就可以了,只是不再登录。
下面是我的“用户”控制器的控制器方法,用于用户更新的 POST。
如果有人可以帮助我解决这个问题,将不胜感激。谢谢。
// The form uses the following case class
case class AccountInfo(userName: String, firstName: String, lastName: String, email: Option[String])
def update(username: String) = SecuredAction { implicit request =>
this.editAccountForm.bindFromRequest.fold (
hasErrors = { info =>
Redirect(routes.Users.edit()).flashing(Flash(editAccountForm.data) +
("error" -> Messages("validation.errors")))
},
success = { info =>
DB.withSession { implicit s: Session =>
val uid = User.currentUser(request.user.id.id,providerId).get.uid
User.update(uid, info, providerId)
}
val message = Messages("user.update.success")
Redirect(routes.Users.edit()).flashing("success" -> message)
.withCookies(request.cookies.get("id").get)
}
)
}