Я новичок в node.js и хочу создать страницу регистрации и входа для пользователя. Кроме того, для пользователя требуется правильная авторизация. Я хочу сохранить информацию о пользователе в базе данных mongodb. Как я могу достичь этого.показать кому-нибудь код для этого, чтобы я мог начать работу с node.js и mongodb.Пожалуйста, помогите
Создание формы регистрации и регистрации в node.js и mongodb
Ответ 1
Вы можете найти полный образец того, что вы пытаетесь сделать в приложении Nodepad от Alex Young. 2 важных файла, на которые вы должны обратить внимание, следующие 2:
https://github.com/alexyoung/nodepad/blob/master/models.js
https://github.com/alexyoung/nodepad/blob/master/app.js
Часть модели выглядит следующим образом:
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();
}
});
Я думаю, что он также объясняет код на сайте dailyjs.
Ответ 2
Я написал шаблонный проект, чтобы сделать именно это. Он поддерживает создание учетной записи, восстановление пароля по электронной почте, сеансы, локальные файлы cookie для запоминания пользователей при их возврате и шифрования паролей через bcyrpt.
Также есть подробное объяснение архитектуры проекта в моем блоге.
Ответ 3
Для легкого начала взгляните на ExpressJS + MongooseJS + MongooseAuth.
В частности, этот последний плагин предоставляет стандартный простой способ делать логины с использованием нескольких разных методов проверки подлинности (Пароль, Facebook, Twitter и т.д.).