MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose niestandardowe sprawdzanie poprawności hasła

Ponieważ nie powinno się zapisywać zwykłego hasła w bazie danych, sprawdzanie poprawności hasła w bazie danych nie ma sensu. Ponieważ najpierw należy zahaszować hasło, a następnie je zapisać. zahaszowane hasło będzie złożonym ciągiem znaków, który najprawdopodobniej przejdzie walidację i zostanie zapisany w bazie danych.

Musisz więc zweryfikować hasło po stronie klienta. w tym celu możesz użyć pakietu joi npm.

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

tak możesz to zaimplementować.

userModel.js //powinien znajdować się w folderze modeli

 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;

zademonstruję, jak korzystać z tej funkcji wewnątrz postroutera.

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. MongoDB w PHP przy użyciu agregacji do grupowania według _id jest null nie działa

  2. Błąd krytyczny:nie znaleziono klasy „Mongo” w C:\\Apache Software Foundation\Apache2.2\htdocs\sample\testdb.php

  3. 7 sposobów liczenia dokumentów w MongoDB

  4. Jak ustawić opcje serializacji dla wartości geograficznych przy użyciu oficjalnego sterownika C# 10gen?

  5. jak uzyskać Python Mongo Aggregate wyjaśnić za pomocą db.command?