2015-08-16 86 views
0

你好那里首先让我告诉我是新的节点js,我试图做一个登录表单使用mongodb和passport.I有两个模块在它server.js和auth .js文件,我的问题是,我想从我的蒙戈服务器访问值,并检查用户名和密码是否正确可以有人请帮我出无法访问mongo db值

auth.js

var passport = require('passport'), 
    LocalStrategy = require('passport-local').Strategy; 
var mongodb = require('mongodb'); 
var mongoose = require('mongoose'); 
    Schema = mongoose.Schema; 
var MongoClient = mongodb.MongoClient; 
mongoose.connect('mongodb://localhost/user'); 
var user = mongoose.model('val', Schema); 
passport.use(new LocalStrategy(
    user.find({},function(username,password,done){ 
     if(username === firstName && password === password12) { 
      return done(null,{username: 'admin'}); 
     } 
     else{ 

     } 
     return done(null,false); 
    }) 
)); 
passport.serializeUser(function(user,done) { 
    done(null,user.firstName); 
}); 
passport.deserializeUser(function(username,done) { 
    done(null,{username: firstName}); 
}); 
module.exports = passport; 

server.js

var express = require('express'); 
var bodyParser = require('body-parser'); 
var functions = require('functions'); 
var path = require('path'); 
var passport = require('./auth.js'); 
var flash = require('connect-flash'); 
var mongodb = require('mongodb'); 
var mongoose = require('mongoose'); 
var app = express(); 
var MongoClient = mongodb.MongoClient; 
app.use(flash()); 
app.use(bodyParser.json()); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use(bodyParser.urlencoded({ 
    extended: false 
})); 
app.set('view engine', 'ejs'); 
app.use(passport.initialize()); 
app.use(passport.session()); 
mongoose.connect('mongodb://localhost/user'); 
var Schema = new mongoose.Schema({ 
    firstName: String, 
    lastName: String, 
    email: String, 
    password12: String, 
}) 

var user = mongoose.model('val', Schema); 

app.get('/signup', function (req, res) { 
    res.render('signup', { 
     firstName: "factWeavers" 
    }); 
}); 
app.post('/signup', function (req, res) { 
    new user({ 
     firstName: req.body.username, 
     lastName: req.body.lastName, 
     email: req.body.email, 
     password12: req.body.password12, 
    }).save(function (err, doc) { 
     if (err) res.json(err); 
     else console.log("information passed successfully"); 
     res.redirect('/login'); 
    }); 
}); 



app.get('/login', function (req, res) { 
    res.render('login'); 
}); 
app.post('/login', passport.authenticate('local', { 
    failureRedirect: '/signup', 
    successRedirect: '/access' 
})); 
functions.login = function(req, res) { 
    res.render('login',{title:hey}) 
} 
app.get('/access', function (req, res) { 
    res.render('access'); 
}); 
functions.access = function(req, res) { 
    if (req.session.passport.user === undefined) { 
     res.redirect('/login'); 
    } else { 
     res.render('user') 
    } 
}; 

var server = app.listen('8090', function() { 
    console.log("Server running at localhost:8090"); 
}); 

这就是我所做的,并提前感谢

回答

0
passport.use(new LocalStrategy(
function(username, password, done) { 
    User.findOne({ firstName: username }, function (err, user) { // find the user with firstName as given username from mongoDB 
     if (err) { return done(err); } 
     if (!user) { // if no user is found with the provided firstName 
     return done(null, false, { message: 'Incorrect username.' }); 
     } 
     if (!(user.password==password)) { // Check if the password is wrong 
     return done(null, false, { message: 'Incorrect password.' }); 
     } 
     return done(null, user); // Login success 
    }); 
    }