Tôi đang cố gắng sử dụng gói bcrypt-nodejs
với mô hình tiếp theo của mình và được thực hiện theo hướng dẫn để kết hợp băm vào mô hình của tôi, nhưng tôi gặp lỗi tại generateHash
. Tôi dường như không thể tìm ra vấn đề. Có cách nào tốt hơn để kết hợp bcrypt?Sử dụng BCrypt với Mô hình liên kết
Lỗi:
/Users/user/Desktop/Projects/node/app/app/models/user.js:26
User.methods.generateHash = function(password) {
^
TypeError: Cannot set property 'generateHash' of undefined
at module.exports (/Users/user/Desktop/Projects/node/app/app/models/user.js:26:27)
at Sequelize.import (/Users/user/Desktop/Projects/node/app/node_modules/sequelize/lib/sequelize.js:641:30)
mô hình:
var bcrypt = require("bcrypt-nodejs");
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('users', {
annotation_id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
firstName: {
type: DataTypes.DATE,
field: 'first_name'
},
lastName: {
type: DataTypes.DATE,
field: 'last_name'
},
email: DataTypes.STRING,
password: DataTypes.STRING,
}, {
freezeTableName: true
});
User.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
User.methods.validPassword = function(password) {
return bcrypt.compareSync(password, this.local.password);
};
return User;
}
Chỉ cần lưu ý: trước khi bạn triển khai điều này, hãy thử và sử dụng [mô-đun bcrypt gốc] (https://www.npmjs.com/package/bcrypt) thay vì mô-đun bcrypt-nodejs. Điều này sẽ tăng tốc độ băm lên rất nhiều bởi vì nó được thực hiện trong C++ thay vì JavaScript. – leroydev