mongoose-bcrypt
をいれる
npm install mongoose-bcrypt --save
mongoose.Promise
を読み込んだ
mongoose.Promise = global.Promise;
mongoose.connect(config.database);
.plugin(require('mongoose-bcrypt'),{ fields: ['password'] })
するだけでいい。
// get mongoose.Schema
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// make user model and export
module.exports = mongoose.model('User',
new Schema({
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);
});
}
});
});
});