身份验证和会话播放框架

时间:2012-08-15 03:16:31

标签: scala playframework playframework-2.0

我正在尝试使用scala语言来解决使用playframework的身份验证。

以下代码的含义是什么,带有Security.username的部分 - > java.util.UUID.randomUUID()。的toString()

def authenticate = Action { implicit request =>
  loginForm.bindFromRequest.fold(
    formWithErrors => BadRequest(html.login(formWithErrors)),
    user => Redirect(routes.Application.index).withSession(Security.username -> java.util.UUID.randomUUID().toString())
  )
}

我想创建一个网站,允许用户通过会话安全地访问自己的设置。

1 个答案:

答案 0 :(得分:3)

这意味着您正在为会话编写一个键值对(实际上是一个已签名的cookie)(“key” - >“value”计算为元组(“key”,“value”))

使用密钥'Security.username'。这将检查是否存在配置'session.username',否则默认为'username'。因此,如果您不配置任何内容,则键是“用户名”。

java.util.UUID.randomUUID()。toString()生成唯一标识符(username-value)。如果您已经拥有任何形式的用户名,请改用它。

与servlet(或例如php)会话相比,正在进行的会话不存储在服务器上,而是存储在cookie中。因此,只有字符串类型的键值对有效,并且大小上限为4k数据。也许您只想在会话中存储用户名并从其他一些数据存储区(如文件系统或数据库)加载设置。在实现此查找时,强烈建议使用播放的缓存功能。