MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Validasi kustom luwak untuk kata sandi

Karena Anda tidak seharusnya menyimpan kata sandi biasa di database Anda, tidak masuk akal untuk memvalidasi kata sandi di database. Karena Anda harus meng-hash kata sandi terlebih dahulu dan kemudian menyimpannya. kata sandi hash akan menjadi string kompleks yang kemungkinan besar akan lolos validasi untuk disimpan dalam database.

Jadi, Anda harus memvalidasi kata sandi di sisi klien. untuk ini Anda dapat menggunakan paket joi npm.

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

ini adalah bagaimana Anda dapat menerapkannya.

userModel.js //harus ada di folder model

 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;

saya akan mendemonstrasikan cara menggunakan fungsi ini di dalam router pos.

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. Ikhtisar Mesin Penyimpanan WiredTiger untuk MongoDB

  2. cara menghindari $push-ing nulls dalam kerangka agregasi mongo

  3. Alasan untuk dan menentang pindah dari SQL server ke MongoDB

  4. mongodb num_rows setara php

  5. MongoDB $rtrim