mongoose-bcrypt
をいれる
npminstallmongoose-bcrypt--save
mongoose.Promise
を読み込んだ
mongoose.Promise=global.Promise;mongoose.connect(config.database);
.plugin(require('mongoose-bcrypt'),{ fields: ['password'] })
するだけでいい。
// get mongoose.Schemavarmongoose=require('mongoose');varSchema=mongoose.Schema;// make user model and exportmodule.exports=mongoose.model('User',newSchema({firstName:String,lastName:String,password:String}).plugin(require('mongoose-bcrypt'),{fields:['password']}));
こんな感じで入ります
{
"firstName" : "鈴木",
"lastName" : "太郎",
"password" : "$2a$10$RXa.tr.mKfCZ2AJuVPP4N.lbA9k7X/NRMcEjHnextX.ValzFVzMgi",
確認
user.verifyPassword('入れたパスワードで確認')
備考
パスワードチェックではこうした。ダサすぎ!誰か改善案教えてください
app.post('/login',function(req,res){User.findOne({email:req.body.mail}).then((user)=>{user.verifyPassword(req.body.pw).then(function(err){if(!err){console.log("パスワードが違います");}else{//email: パスワードは必ずユニークであること // ***ダサい直したいUser.findOne({email:req.body.mail},function(err,obj){if(err){console.log("エラーが発生しました");}res.json(obj);});}});});});