création d'un formulaire d'inscription et de connexion dans le noeud.JS et mongodb

je suis nouveau à node.js et veulent créer une page d'enregistrement et de connexion pour l'utilisateur.il y a également de l'autorisation appropriée pour l'utilisateur.Je veux stocker les informations utilisateur dans la base de données mongodb.Comment puis-je y parvenir.quelqu'un peut-il me fournir le code pour le faire, pour que je puisse commencer avec node?js et mongodb.S'il vous plaît aider

38
demandé sur Dar Hamid 2011-11-08 18:05:45

3 réponses

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



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

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

une partie du modèle look comme 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 a également , explique le code sur le dailyjs site .

42
répondu alessioalex 2011-11-13 12:53:58

j'ai écrit un passe-partout de projet à faire exactement cela. il prend en charge la création de compte, la récupération de mot de passe par e-mail, les sessions, les cookies locaux pour se souvenir des Utilisateurs quand ils reviennent et cryptage mot de passe sécurisé via bcyrpt.

il y a aussi une explication détaillée de l'architecture du projet sur mon blog.

21
répondu braitsch 2012-06-13 17:56:02

pour un moyen facile de commencer jetez un oeil à ExpressJS + MongooseJS + MongooseAuth .

en particulier, ce dernier plug-in fournit un moyen standard simple de faire des logins en utilisant plusieurs méthodes d'authentification différentes (mot de passe, Facebook, Twitter, etc.)

10
répondu Gates VP 2011-11-08 22:24:45