-2
パスワードをハッシュしてソルトしようとしていますが、多くのエラーが発生しました。 そのコードで何が間違っているのですか、それを入力する正しい方法は何ですか?ハッシングとソルトパスワードフィールド
user.jsのコード
const mongoose = require('mongoose')
const schema = mongoose.Schema
const promise = require('bluebird')
const bcrypt = promise.promisifyAll(require('bcrypt'))
function hashPassword(user, option) {
const SALT_FACTOR = 8
if (!user.isModified('password')) {
return;
}
return bcrypt
.genSaltAsync(SALT_FACTOR)
.then(salt => bcrypt.hashAsync(user.password, salt, null))
.then(hash => {
user.setDataValue('password', hash)
})
}
// create schema and model
const userSchema = new schema({
email: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true
}
})
userSchema.pre('create', function(next) {
hashPassword()
})
userSchema.pre('update', function(next) {
hashPassword()
})
userSchema.pre('save', function(next) {
hashPassword()
})
const user = mongoose.model('user', userSchema)
user.prototype.compairePassword = function (password) {
return bcrypt.compareAsync(password, this.password)
}
module.exports = user