2016-07-02 7 views
3

Unten ist meine server.js (app.js). Ich benutze Express mit Pass, für Benutzer-Authentifizierung. Aber immer, wenn ich meinen Node-Server neu starte, meldet sich der Benutzer ab.Implementieren Sie Cookie-basierte Authentifizierung in Knoten JS mit Passport

Ich bin sehr neu zu Nodejs, ich frage mich, wie ich eine Cookie-basierte Authentifizierung implementieren könnte. Daher meldet sich der Benutzer nicht ab, auch wenn der Server gestartet wird. Ich bin sicher, dass es einige Konfigurationsänderungen gibt, die ich nicht finden konnte.

// server.js 

// set up ====================================================================== 
// get all the tools we need 
var express = require('express'); 
var app  = express(); 
var port  = process.env.PORT || 80; 
var mongoose = require('mongoose'); 
var passport = require('passport'); 
var flash = require('connect-flash'); 

var morgan  = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var session  = require('express-session'); 

var configDB = require('./config/database.js'); 

// configuration =============================================================== 
mongoose.connect(configDB.url); // connect to our database 

require('./config/passport')(passport); // pass passport for configuration 

// set up our express application 
app.use(morgan('dev')); // log every request to the console 
app.use(cookieParser()); // read cookies (needed for auth) 
app.use(bodyParser()); // get information from html forms 

app.set('view engine', 'ejs'); // set up ejs for templating 

// required for passport 
app.use(session({ secret: 'yassers' })); // session secret 
app.use(passport.initialize()); 
app.use(passport.session()); // persistent login sessions 
app.use(flash()); // use connect-flash for flash messages stored in session 

// routes ====================================================================== 
require('./app/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport 

// launch ====================================================================== 
app.listen(port); 
console.log('The magic happens on port ' + port); 
+0

Überprüfen Sie den MEAN.js Stapel, es hat Cookie Auth –

Antwort

4

Die Abmeldung, wenn Sie Ihren Start neu starten, da seine in Memorys (RAM) gespeichert. Verwende mongoStore, um dein Session-Mongodb zu speichern. Versuchen Sie unter dem folgenden Code:

var session = require('express-session'); 
var MongoStore = require('connect-mongo')(session); 

var mongoStore = new MongoStore({ 
    url: 'your mongo db url' 
}); 

app.use(session({ 
    secret: 'your secret', 
    saveUninitialized: true, // don't create session until something stored 
    resave: false, //don't save session if unmodified 
    store: mongoStore, 
    cookie: { 
    domain: 'domain name',  
    maxAge: 1000 * 24 * 60 
    } 
})); 
+0

Vielen Dank mein Tag. – Yasser