3

Je me demande s'il y a un moyen de permettre à l'utilisateur de se connecter à la fois le nom d'utilisateur ou email Je cherchai beaucoup de temps pour, mais ne pas trouvé une méthode de travail . Je n'ai pas une seule idée de comment faire cela, s'il vous plaît aider de la manière la plus facile si possible. Voici à quoi ressemble mon schéma d'utilisateur:connexion avec e-mail ou nom d'utilisateur avec MongoDB dans Node.js

var mongoose = require("mongoose"); 
var passportLocalMongoose = require("passport-local-mongoose"); 

var UserSchema = new mongoose.Schema({ 
    fullname: String, 
    username: { type : String , lowercase : true , unique: true , required: true, minlength: 3, maxlength: 10}, 
    email: String, 
    password: String, 
    mobile: String, 
    gender: String, 
    profession: String, 
    city: String, 
    country: String, 
    joining: {type: Date, default: Date.now} 
}); 

UserSchema.plugin(passportLocalMongoose); 

module.exports = mongoose.model("User", UserSchema); 

Ajout d'infos: Je travaille sur le noeud nodejs. Toute aide est sérieusement appréciée. thnx

+0

Vous devriez essayer de trouver une solution par vous-même et publier ce que vous avez essayé. Vous ne devriez pas demander des solutions complètes et laisser les autres faire votre travail. – Syc

Répondre

4
//the simple example of login// 
router.post('/users/login', function(req, res) { 
    var users = req.app; 
    var email = req.body.email; 
    var password = req.body.password; 
    var username = req.body.username; 
    var data; 
    if (email.length > 0 && password.length > 0) { 
     data = { 
      email: email, 
      password: password 
     }; 
    } 
    elseif(username.length > 0 && password.length > 0) { 
     data = { 
      username: username, 
      password: password 
     }; 
    } else { 
     res.json({ 
      status: 0, 
      message: err 
     }); 
    } 
    users.findOne(data, function(err, user) { 
     if (err) { 
      res.json({ 
       status: 0, 
       message: err 
      }); 
     } 
     if (!user) { 
      res.json({ 
       status: 0, 
       msg: "not found" 
      }); 
     } 
     res.json({ 
      status: 1, 
      id: user._id, 
      message: " success" 
     }); 
    }) 
} else { 
    res.json({ 
     status: 0, 
     msg: "Invalid Fields" 
    }); 
} 
}); 

//and if you have to create schema 

var db_schema = new Schema({ 
    email: { 
     type: String, 
     required: true, 
     unique: true 
    }, 
    password: { 
     type: String, 
     required: true, 
     unique: true 
    }, 
}); 
// define this in your db.js 
var login_db = mongoose.model('your_db_name', db_schema); 
return function(req, res, next) { 
    req.app = login_db; 
    next(); 
}; 
+2

c'est exactement ce dont j'avais besoin. homme thnx vous êtes un ange – Zub