Hi

I am new to nodejs and web development and I am handling my first project.

Please, I need assistance concerning consistent sessionId because I
observed that despite my checks online and documentation that is available
online, each request generates a new sessionId in my app.

I use express-session with redis store; when, user logged in, it generate a
sessionId in redis and when I redirect the user to dashboard(after
successful login), I realise that a new sessionId is generated in express
session but not in redis. Hence, difficult to track because it is not in
redis. Further requests from dashboard, also generate a new sessionId in
express session and not in redis..

I would appreciate materials or sample codes on how to solve this challenge.

Thank you,
Femi

================================  CODE EXTRACTS...
-----------------  config..json
{
    "cokiepy": "secretSign#143_!223",
    "cokieName": "sid",
    "cokieAge": 120000,
    "cokieSecure": "false",
    "sessionSecret": "Myllage123$#@",
    "redis": {
        "host": "localhost",
        "port": 6379,
        "client": "client",
        "ttl": 260
    }
}

-------------  app.js extract
var port = process.env.port || 6400;

var path = require('path');
var redis = require("redis");
var uuid = require('uuid');
var session = require('express-session');
var redisStore = require('connect-redis')(session);
var client = redis.createClient();

exports.rediee = {client};

var nconf = require('nconf');
nconf.file({ file: './utilities/config/config.json' });

var cookieparser = require('cookie-parser');
var bodyparser = require('body-parser');
var nodemailer = require('nodemailer');

var mysql = require('mysql');

var express = require('express');
var app = express();
app.set('views', path.join(__dirname, '/views'));          // Set the
default views directory to html folder

app.use(express.static(path.join(__dirname,'views/html/css/')));

var indexRouter = require('./routes/index');
var cMed = require('./routes/cephasIFRS');

app.set('view engine','ejs');

var htmlPath = path.join(__dirname, './views/html');
var utilPath = path.join(__dirname, './utilities');

var http = require('http');
var server = http.createServer(app);

app.use(cookieparser(nconf.get('cokiepy')));
app.use(bodyparser.json());
app.use(express.static(utilPath));
app.use(express.static(htmlPath));

app.use(session({
   genid: (req) => {
      return uuid()
    },
   secret: nconf.get('sessionSecret'),    //'ssshhhhh',
   key: 'express.sid',
   name: nconf.get('cokieName'),
   store: new redisStore({
     host: nconf.get('redis:host'),
     port: nconf.get('redis:port'),
     client: client,
     ttl :  nconf.get('redis:ttl')}),
     // cokieAge was set to 2mins [ i.e. 120000 ].
     cookie: {
         httpOnly: true,
         secure: nconf.get('cokieSecure'),
         maxAge: nconf.get('cokieAge'),
         sameSite: true
      },
   //key: SESSION_KEY,
   rolling: true,
   saveUninitialized: false,
   resave: false,
   name: "id"        //  makes it much more difficult for any attacker to
determine the underlying mechanisms used by our application
 }));


app.use('/', cMed);  // Add catalog routes to middleware chain.

//server
server.listen(port, () => {
   console.log(`...app running at port: ${port}`);
      client.on('ready',function() {
         console.log("Redis is ready");
      });

      client.on('error',function() {
         console.log("Error in Redis");
      });

      // test if redis server could set and get key.
      client.set('chk this out', 'H001 is the test', redis.print);
      client.get('chk this out', function (error, result) {
      if (error) {
           console.log(error);
           throw error;
       }
       console.log('GET result ->  ' + result);
   });
});

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/CADT5FNPH7%2BQiGQ5N5abvCN9zYazvDPVuFJn8rq%3DBkHKHDwedzA%40mail.gmail.com.

Reply via email to