ユーザーパスワードをプレーンテキストとして保存しないように、カスタムの保存方法を作成しようとしていました。しかし、this.valuesの値を変更するために私が何をしても効果がないようです。これは私の続編モデルです:
module.exports= function (sequelize, DataTypes){
return sequelize.define("Users",{
username: DataTypes.STRING,
password: DataTypes.STRING,
first_name: DataTypes.STRING,
last_name: DataTypes.STRING,
email: DataTypes.STRING,
is_admin: DataTypes.BOOLEAN,
active: DataTypes.BOOLEAN
},{ instanceMethods: {
user_save: function(){
if(this.isNewRecord){
var salt = 'blahblahblah';
var key128Bits = CyrptoJS.PBKDF2(this.values.password, salt, { keySize: 128/32 });
delete this.values.password;
this.values.password = key128Bits.toString()
console.log('new record ' + key128Bits.toString())
}
console.log(this.values)
this.save();
return
}}
}
);};
最初のログステートメントは、if isNewRecord内のコードが実行されていることを確認し、ハッシュを生成します。2番目のログステートメントと出力は、このプロパティが元の値から変更されていないことを示します。なぜこれなのか、どうすれば問題を解決できるのか誰かが知っていますか?
POSTリクエストの直後にこれを行うこともできますが、可能であればこの方法で行うことをお勧めします。