2017-01-24 6 views
-3
var passport = require('passport') 
var passportLocal = require('passport-local'); 
var expressSession = require('express-session'); 
var app = express(); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(cookieParser()); 
app.use(require('stylus').middleware(path.join(__dirname, 'public'))); 

app.use(expressSession({ 
    secret: process.env.SESSION_SECRET || 'secret', 
    resave: false, 
    saveUninitialized: false 
})) 

passport.use(new passportLocal.Strategy(function(username, password, done) { 
    if (username == password) { 
    done(null, { id: username, name: username }); 
    } else { 
    done(null, null); 
    } 


})); 

app.use(passport.initialize()); 
app.use(passport.session()); 

passport.serializeUser(function(user, done) { 
    done(null, user.id); 
}); 
passport.deserializeUser(function(id, done) { 
    done(null, { id: id, name: id }); 
}); 


app.use('/', index); 
app.use('/', users); 


app.get('/', function(req, res, next) { 
    res.render("login", { 
    isAuthenticated: req.isAuthenticated(), 
    user: req.user 
    }); 
}); 
app.post('/login', 
    passport.authenticate('local'), 
    function(req, res, next) { 
    res.redirect("/index1"); 
    }); 

Bekam das ... Aber wie schränke ich den Zugriff auf alle Seiten ein?So verwenden Sie die Pass-Authentifizierung in Express-Anwendung

+0

ich alles gemacht wie sagt [hier] (https://scotch.io/tutorials/ easy-node-authentication-setup-and-local) und alles funktioniert gut, zumindest mit lokaler Anmeldung – JavaEvgen

+0

Ich habe den Code von passagjs.org geschrieben ..... Aber kann es nicht laufen –

+0

Versuchen Sie, Tutorial I zu verwenden im vorherigen Kommentar gesendet – JavaEvgen

Antwort

1

Das funktioniert !!! Hier

ist der Code:

var passport = require('passport') 
var passportLocal = require('passport-local'); 
var expressSession = require('express-session'); 
var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs'); 



app.use(require('stylus').middleware(path.join(__dirname, 'public'))); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use(express.static(__dirname + '/node_modules/jquery/dist/')); 
// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(cookieParser()); 
app.use(require('stylus').middleware(path.join(__dirname, 'public'))); 


app.use(expressSession({ 
     secret: process.env.SESSION_SECRET || 'secret', 
     resave:false, 
     saveUninitialized: false 
})) 




passport.use(new passportLocal.Strategy(function(username,password, done){ 
    if(username == password) 
    { 
     done(null,{ id:username, name: username }); 
    } 
    else 
    { 
     done(null,null); 
    } 


})); 

app.use(passport.initialize()); 
app.use(passport.session()); 

passport.serializeUser(function(user,done){ 
     done(null,user.id); 
}); 
passport.deserializeUser(function(id,done){ 
     done(null, { id:id,name: id}); 
}); 


app.use('/', index); 
app.use('/', users); 

app.get('/', function(req, res, next) { 
    res.render("login",{ 
     isAuthenticated: req.isAuthenticated(), 
     user: req.user 
    }); 
}); 
app.post('/login', 
    passport.authenticate('local'), function(req, res, next) { 
    res.redirect("/index1"); 
}); 

und dann verwenden Sie die folgende bedingte Logik:

if(req.isAuthenticated()) 
{ 

} 
else 
{ 

}