2017-02-26 43 views
1

我正在使用const SessionStore = require('express-session-sequelize')(expressSession.Store);来存储会话。 我想保存在会话currenty用户,该用户登录到网站。nodejs express中的会话

这里是商店的配置:

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 
})); 

所以,现在登录我有这样的:

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; 

现在,这req.session.user = result;后,我在DB会话表与当前用户数据。 现在,

  1. 如何验证此用户是否已通过身份验证?
  2. ,我注意到,为每个请求我得到diferrent会话ID(这是正确的)

感谢

回答

0

您好用户管理员可以使用passportjs 它是表达一个伟大的用户管理和提供高质量的处理您的用户管理器逻辑。