Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- passport.use('local-signup', new LocalStrategy({
- usernameField: 'email',
- passwordField: 'password',
- session: false
- },
- function(email, password, done) {
- process.nextTick(function() {
- User.findOne({
- email: email.toLowerCase()
- }, function(err, user) {
- if (err) {
- return done(err);
- } else {
- if (user) {
- return done(null, false);
- } else {
- // Create new user if email does not exist
- var newUser = new User();
- // set the user's local credentials
- newUser.email = email;
- newUser.password = newUser.generateHash(password);
- // save the user
- newUser.save(function(err) {
- if (err) {
- console.log('throwing error: ' + err);
- throw err;
- }
- console.log('the new user: ' + newUser);
- return done(null, newUser);
- });
- }
- }
- });
- });
- }
- ));
- var mongoose = require('mongoose'),
- Schema = mongoose.Schema,
- passportLocalMongoose = require('passport-local-mongoose'),
- bcrypt = require('bcrypt-nodejs'),
- ObjectId = Schema.ObjectId;
- var UserSchema = new Schema({
- id: String,
- email: String,
- password: String,
- dateRegistered: { type: Date, 'default': Date.now }
- });
- 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.plugin(passportLocalMongoose);
- module.exports = mongoose.model('User', UserSchema);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement