【发布时间】:2015-11-16 22:14:24
【问题描述】:
我想保存一个散列密码。我为此使用了 setterMethod:
module.exports = (sequelize, DataTypes) ->
sequelize.define 'User',
# other model fields [...]
password:
type: DataTypes.STRING
validate: notEmpty: msg: 'You need to set a password.'
set: (pw) ->
salt = bcrypt.genSaltSync(10)
hash = bcrypt.hashSync(pw, salt)
@setDataValue('password', hash)
setter 首先运行。一个空字符串密码 ('') 被散列成一个非空密码 (比如$2a$10$pDDIGnV.r47i9YOv0Fls/euQ0yYvfyq8T1SyP9VRQsTUAqptNmxXO)。
验证器验证时,密码不再为空。
如何在 setter 之前验证密码?
我查看了hooks,但他们也没有提到二传手。
我正在使用sequelize@2.1.3。
【问题讨论】:
标签: javascript coffeescript sequelize.js