UNPKG

@tejaswigowda/simpleauth

Version:

Simple authentication using Node.js + Passport.js

57 lines (49 loc) 1.5 kB
// load the things we need var mongoose = require('mongoose'); var bcrypt = require('bcrypt-nodejs'); // define the schema for our user model var userSchema = mongoose.Schema({ local : { email : String, password : String, resetPasswordToken: String, resetPasswordExpires: Date }, facebook : { id : String, token : String, email : String, name : String }, twitter : { id : String, token : String, displayName : String, username : String }, google : { id : String, token : String, email : String, name : String } }); // generating a hash userSchema.methods.generateHash = function(password) { return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null); }; // checking if password is valid userSchema.methods.validPassword = function(password) { return bcrypt.compareSync(password, this.local.password); }; userSchema.pre('save', function(next){ var user = this; //check if password is modified, else no need to do anything if (!user.isModified('pass')) { return next() } user.pass = bcrypt.hashSync(password, bcrypt.genSaltSync(8), null); next() }) // create the model for users and expose it to our app module.exports = mongoose.model('User', userSchema);