LoginSignup
0
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-05-30

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

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1