Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var session = require('express-session');
- var passport = require('passport');
- var localStrategy = require('passport-local').Strategy;
- //passport
- app.use(passport.initialize());
- app.use(passport.session());
- var express = require('express');
- var User = require('../models/users');
- var passport = require('passport');
- var LocalStrategy = require('passport-local').Strategy;
- passport.serializeUser(function(user, done) {
- done(null, user.id);
- });
- passport.deserializeUser(function(id, done) {
- User.findId(id, function(err, user) {
- done(err, user);
- });
- });
- passport.use(new LocalStrategy(
- function(username, password, done) {
- console.log("enter local startegy");
- User.findUsername(username, function(err, user) {
- if (err) { return done(err); }
- if (!user) {
- console.log("unknown unser");
- return done(null, false, { message: 'Incorrect username.' });
- }
- user.comparePassword(password,user.passport,function (err,isMatch){
- if(err) throw err;
- if(isMatch){
- return done(null, user);
- }else{
- console.log("password not matching");
- return done(null, false, { message: 'Incorrect password.' });
- }
- })
- });
- }
- ));
- router.post('/login',passport.authenticate('local-login', {failureFlash: 'Invalid username or password ,try again', failureRedirect: '/users/login' }),function(req,res,next){
- console.log('authentication successful');
- req.flash('success','your logged in');
- res.location('/');
- res.redirect('/');
- });
- var mongos = require('mongoose');
- var bcrypt = require('bcrypt');
- var db = mongos.connection;
- //mongos.connect('mongodb://localhost/nodeauth');
- mongos.connect('mongodb://localhost/nodeauth', {
- useMongoClient: true,
- /* other options */
- });
- // User schema
- var userSchema = mongos.Schema({
- username : {
- type: String,
- index: true
- },
- password: {
- type: String,
- required: true,
- bcrypt: true,
- },
- email: {
- type: String,
- },
- name: {
- type: String,
- },
- image: {
- type: String,
- }
- });
- var User = module.exports = mongos.model('User',userSchema);
- // check password .. for login
- module.exports.comparePassword = function(password ,hash,callback){
- console.log("checking password");
- bcrypt.compare(password,hash,function(err ,isMatach){
- if(err) return callback(err);
- return(null,isMatach);
- });
- }
- // check user name ... for login
- module.exports.findUsername = function(username , callback){
- console.log("checking username");
- User.findOne({username:username},callback);
- }
- // check id .. for login
- module.exports.findId = function(id , callback){
- User.findById(id,callback);
- }
- // check user
- module.exports.createUser = function(newUser,callback){
- bcrypt.hash(newUser.password,10,function(err,hash){
- if(err) throw err;
- // set new password
- newUser.password = hash;
- // create user
- newUser.save(callback);
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement