Quantcast
Viewing all articles
Browse latest Browse all 8873

Node.jsでパスワードを暗号化 | mongoose , Express, MongoDB

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);});}});});});

参考

http://ichi-bit.hateblo.jp/entry/2017/11/17/mongoose%E3%81%A7password%E3%82%92%E6%9A%97%E5%8F%B7%E5%8C%96%E3%81%97%E3%81%A6%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%A6%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95


Viewing all articles
Browse latest Browse all 8873

Trending Articles