MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

création d'un formulaire d'inscription et de connexion dans node.js et mongodb

Vous pouvez trouver un échantillon complet de ce que vous essayez de faire dans l'application Nodepad d'Alex Young. Les 2 fichiers importants que vous devriez consulter sont ces 2 :

https://github.com/alexyoung/nodepad/blob/master/models.js
https://github .com/alexyoung/nodepad/blob/master/app.js

Une partie du modèle ressemble à ceci :

  User = new Schema({
    'email': { type: String, validate: [validatePresenceOf, 'an email is required'], index: { unique: true } },
    'hashed_password': String,
    'salt': String
  });

  User.virtual('id')
    .get(function() {
      return this._id.toHexString();
    });

  User.virtual('password')
    .set(function(password) {
      this._password = password;
      this.salt = this.makeSalt();
      this.hashed_password = this.encryptPassword(password);
    })
    .get(function() { return this._password; });

  User.method('authenticate', function(plainText) {
    return this.encryptPassword(plainText) === this.hashed_password;
  });

  User.method('makeSalt', function() {
    return Math.round((new Date().valueOf() * Math.random())) + '';
  });

  User.method('encryptPassword', function(password) {
    return crypto.createHmac('sha1', this.salt).update(password).digest('hex');
  });

  User.pre('save', function(next) {
    if (!validatePresenceOf(this.password)) {
      next(new Error('Invalid password'));
    } else {
      next();
    }
  });

Je pense qu'il explique aussi le code sur le site dailyjs.