0
我在数据库表User(id, password_hash, ....)
和它的模型:密码和密码哈希的模型和数据库表
case class User(
id: Pk[Long] = NotAssigned,
email: String,
password: Option[String] = None,
passwordHash: Option[String] = None
)
object User {
def create(newUser: User): Option[Long] = //.....
//on("password_hash" -> generatePasswordHash(newUser.password)
def generatePasswordHash(p: String) = //....
}
的一点是Password
场只存在于模型User
并不仅填补了我注册一个新用户:
val newUser = User(email = emailFromForm, password = Some(passwordFromForm))
我发送给db只有密码的散列。显然,当我从数据库检索它,Password
字段在None,但PasswordHash
有一个值。
我发Password
和PasswordHash
是选项,因为我认为他们应该是Options
,不应该吗?不过,我不确定这是对还是错。
问题是我的这是一个好方法?
也许,我不因为我需要它仅适用于创建新用户需要输入密码。在checkPassword中,你的意思是passwordHash? –
我想我会删除密码字段,并保持passwordHash只。我会将创建的签名更改为与您的一样。 –
“在checkPassword中,你的意思是passwordHash?”不,我的意思是您从登录表单中获得的密码,请参阅编辑。 –