我正在尝试使用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())
)
}
我想创建一个网站,允许用户通过会话安全地访问自己的设置。
答案 0 :(得分:3)
这意味着您正在为会话编写一个键值对(实际上是一个已签名的cookie)(“key” - >“value”计算为元组(“key”,“value”))
使用密钥'Security.username'。这将检查是否存在配置'session.username',否则默认为'username'。因此,如果您不配置任何内容,则键是“用户名”。
java.util.UUID.randomUUID()。toString()生成唯一标识符(username-value)。如果您已经拥有任何形式的用户名,请改用它。
与servlet(或例如php)会话相比,正在进行的会话不存储在服务器上,而是存储在cookie中。因此,只有字符串类型的键值对有效,并且大小上限为4k数据。也许您只想在会话中存储用户名并从其他一些数据存储区(如文件系统或数据库)加载设置。在实现此查找时,强烈建议使用播放的缓存功能。