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

tworzenie formularza rejestracji i logowania w node.js i mongodb

Pełną próbkę tego, co próbujesz zrobić, znajdziesz w aplikacji Nodepad autorstwa Alexa Younga. Dwa ważne pliki, którym powinieneś się przyjrzeć, to 2:

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

Część modelu wygląda tak:

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

Myślę, że wyjaśnia również kod na stronie dailyjs.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $pow

  2. MongoDB — upuść kolekcję

  3. Włączanie kompresji danych w MongoDB 3.0

  4. Mongoose, znajdź, zwróć określone właściwości

  5. Jak włączyć logowanie dla Mongoose i sterownika MongoDB Node.JS?