Ich verwende const SessionStore = require('express-session-sequelize')(expressSession.Store);
zum Speichern der Sitzungen. Ich möchte in Sitzung aktuellen Benutzer speichern, die auf der Website protokollieren.Sitzung in Nodejs Express
hier ist eine Konfiguration für den Shop:
const expressSession = require('express-session');
const SessionStore = require('express-session-sequelize')(expressSession.Store);
const Sequelize = require('sequelize');
const myDatabase = new Sequelize('analytic', 'root', '', {
host: 'localhost',
dialect: 'mysql'
});
const sequelizeSessionStore = new SessionStore({
checkExpirationInterval: 15 * 60 * 1000, // The interval at which to cleanup expired sessions in milliseconds.
expiration: 24 * 60 * 60 * 1000, // The maximum age (in milliseconds) of a valid session.
db: myDatabase
});
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.use(expressSession({
secret: '412415415415415121212121',
store: sequelizeSessionStore,
name: 'session_id',
resave: false,
saveUninitialized: false
}));
So, jetzt für die Anmeldung ich dieses:
var express = require('express');
var url = require('url');
var router = express.Router();
var User = require('../../model').User;
var jwt = require('jsonwebtoken');
var app = require("../../application");
router.post('/authenticate', function(req, res) {
User.doLogin(req).then((result)=> {
if (result) {
if (result.error) {
if (result.error.hasOwnProperty("email")) {
res.send(400, { success: false, message: "Incorrect user/password"});
} else if (result.error.hasOwnProperty("activated")) {
res.send(400, {success: false, message: "You are not activated yet"});
}
} else {
//app.createSession(req);
req.session.user = result;
res.send(200, result);
}
}
});
});
module.exports = router;
Jetzt, nach dieser req.session.user = result;
ich in db Session-Tabelle haben mit den aktuellen Benutzerdaten. Jetzt,
- Wie kann ich überprüfen, ob dieser Benutzer authentifiziert ist?
- und ich merke, dass für jede Anforderung ich verschiedene Einrichtungs sessionID (das ist ok)
Dank