MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Xác thực tùy chỉnh Mongoose cho mật khẩu

Vì bạn không được phép lưu mật khẩu thuần túy trong cơ sở dữ liệu của mình, nên việc xác thực mật khẩu trong cơ sở dữ liệu không có ý nghĩa gì. Vì bạn nên băm mật khẩu trước rồi mới lưu lại. mật khẩu băm sẽ là một chuỗi phức tạp có nhiều khả năng sẽ vượt qua quá trình xác thực để được lưu trong cơ sở dữ liệu.

Vì vậy, bạn phải xác thực mật khẩu ở phía máy khách. đối với điều này, bạn có thể sử dụng gói joi npm.

https://www.npmjs.com/package/@hapi/joi

đây là cách bạn có thể triển khai nó.

userModel.js // phải nằm trong thư mục mô hình

 const Joi = require('@hapi/joi');
 const mongoose = require("mongoose");

 //you defined your schema above, it should be **lowercase** 
 //here is the model, model should start capital letter 
 const User=mongoose.model("User",userSchema)

function validateUser(user) {
  const schema = Joi.object().keys({
    email: Joi.string()
      .min(8)
      .max(50)
      .required()
      .email(),
    password: Joi.string()
      .min(6)
      .required()
      .max(20)
      .regex(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,1024}$/) //special/number/capital
  });
  return Joi.validate(user, schema);
}

module.exports.User = User;
module.exports.validate = validateUser;

tôi sẽ trình bày cách sử dụng chức năng này bên trong bộ định tuyến bưu điện.

userRoute.js

//import model and validate func
const { User, validate } = require("/models/user"); 

router.post("/", async (req, res) => {
  //validating the request here
  const { error } = validate(req.body);
  if (error) res.status(400).send(error.details[0].message);

  //i used this code to show you how to use validate function
  //i am not sure what is your project about
  });


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose.aggregate (đường ống) liên kết nhiều bộ sưu tập bằng cách sử dụng $ unwind, $ lookup, $ group

  2. Quy tắc đa hóa Mongoose (Nodejs) là gì?

  3. Không chạy được Mongodb

  4. Cố gắng tìm với $ regex nhiều trường cùng lúc trong Mongodb

  5. $ unionWith - Tương đương của MongoDB với UNION ALL