1

我正在尝试使用 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())
  )
}

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

4

1 回答 1

3

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

使用密钥“Security.username”。这将检查配置“session.username”是否存在,否则默认为“用户名”。所以如果你不配置任何东西,关键是'用户名'。

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

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

于 2012-08-15T09:18:47.910 回答