Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Otetaan mongo plugin käyttöön
- var mongoose = require('mongoose');
- var Schema = mongoose.Schema;
- var bcrypt = require('bcryptjs');
- var SALT_WORK_FACTOR = 10;
- // luodaan käyttäjä scheema
- var userSchema = new Schema({
- name: String,
- username: { type: String, required: true, unique: true },
- password: { type: String, required: true },
- admin: Boolean,
- location: String,
- meta: {
- age: Number,
- website: String
- },
- created_at: Date,
- updated_at: Date
- });
- //Lisätään crypatatun salasanan tallennus
- userSchema.pre('save', function (next) {
- var user = this;
- //Tallennetaan vain uusi salasana
- if (!user.isModified('password')) return next();
- //Luodaan suola ja cryptattu salasana
- bcrypt.genSalt(SALT_WORK_FACTOR, function (err, salt) {
- if (err) return next(err);
- bcrypt.hash(user.password, salt, function (err, hash) {
- if (err) return next(err);
- //vaihdetaan käyttäjän salasana hashattuun
- user.password = hash;
- next();
- });
- });
- });
- //salasanan tarkasatus
- userSchema.methods.comparePassword = function (candidatePassword, cb) {
- bcrypt.compare(cadidatePassword, this.password, function (err, isMatch) {
- if (err) return cb(err);
- cb(null, isMatch);
- });
- };
- // Tehdään scheemasta mongo malli
- var User = mongoose.model('User', userSchema);
- // Julkaistaan malli muualla käytettäväksi
- module.exports = User;
- var tepi = new User({
- name: 'Tepi',
- username: 'Tepi' + Math.round(Math.random() * 100),
- password: 'salasana',
- admin: true
- });
- //Tallennetaan käyttäjä
- tepi.save(function (err) {
- if (err) throw err;
- console.log('User saved successfully!');
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement