Advertisement
Guest User

dsadsadsadsa

a guest
Feb 10th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Otetaan mongo plugin käyttöön
  2. var mongoose = require('mongoose');
  3. var Schema = mongoose.Schema;
  4.  
  5. var bcrypt = require('bcryptjs');
  6.  
  7. var SALT_WORK_FACTOR = 10;
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14. // luodaan käyttäjä scheema
  15. var userSchema = new Schema({
  16.     name: String,
  17.     username: { type: String, required: true, unique: true },
  18.     password: { type: String, required: true },
  19.     admin: Boolean,
  20.     location: String,
  21.     meta: {
  22.         age: Number,
  23.         website: String
  24.     },
  25.     created_at: Date,
  26.     updated_at: Date
  27. });
  28.  
  29. //Lisätään crypatatun salasanan tallennus
  30. userSchema.pre('save', function (next) {
  31.     var user = this;
  32.     //Tallennetaan vain uusi salasana
  33.     if (!user.isModified('password')) return next();
  34.    
  35.     //Luodaan suola ja cryptattu salasana
  36.     bcrypt.genSalt(SALT_WORK_FACTOR, function (err, salt) {
  37.         if (err) return next(err);
  38.        
  39.         bcrypt.hash(user.password, salt, function (err, hash) {
  40.             if (err) return next(err);
  41.             //vaihdetaan käyttäjän salasana hashattuun
  42.             user.password = hash;
  43.             next();
  44.         });
  45.     });
  46. });
  47.  
  48. //salasanan tarkasatus
  49. userSchema.methods.comparePassword = function (candidatePassword, cb) {
  50.     bcrypt.compare(cadidatePassword, this.password, function (err, isMatch) {
  51.         if (err) return cb(err);
  52.         cb(null, isMatch);
  53.     });
  54. };
  55. // Tehdään scheemasta mongo malli
  56. var User = mongoose.model('User', userSchema);
  57.  
  58. // Julkaistaan malli muualla käytettäväksi
  59. module.exports = User;
  60.  
  61. var tepi = new User({
  62.     name: 'Tepi',
  63.     username: 'Tepi' + Math.round(Math.random() * 100),
  64.     password: 'salasana',
  65.     admin: true
  66. });
  67.  
  68. //Tallennetaan käyttäjä
  69. tepi.save(function (err) {
  70.     if (err) throw err;
  71.    
  72.     console.log('User saved successfully!');
  73. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement