当我启动使用Waterline作为其数据库ORM的应用程序时,users表中的密码字段会发生变化。我认为它正在重新散列它,但我不明白它为什么会这样做。
My Collection看起来像这样:
Crypto = require 'crypto'
Waterline = require 'waterline'
module.exports = Waterline.Collection.extend({
identity: 'users'
connection: 'default'
attributes: {
id: {
type: 'integer'
autoIncrement: true
primaryKey: true
}
name: {
type: 'string'
required: true
}
username: {
type: 'string'
unique: true
required: true
}
password: {
type: 'string'
required: true
}
verifyPassword: (password) ->
md5 = Crypto.createHash('md5')
md5.update(password)
(@password == md5.digest('hex'))
}
beforeCreate: (attrs, cb) ->
md5 = Crypto.createHash('md5')
md5.update(attrs.password)
attrs.password = md5.digest('hex')
cb()
authenticate: (username, password, cb) ->
@findOne({username: username}).then (user) ->
if user
if user.verifyPassword(password)
cb(null, user)
else
cb("Incorrect password given for #{username}", null)
else
cb("Unable to find user #{username}", null)
})
createdAt
和updatedAt
设置为当前时间,但记录中的其他内容会更改。
我正在使用PostgreSQL数据库。