2017-11-03 14 views
0

私はexpression-sessionとexpress-mysql-sessionをデータベースに格納するのに、すべてのajaxに新しいセッションIDを返します。 httpからの詳細情報の呼び出しのみ。この問題は、ブラウザのセキュリティを無効にすると発生しません。 Expressセッション - データベースに格納するためにexpression-sessionとexpress-mysql-sessionを使用しています

var express = require('express'); var mysql = require('mysql'); var 
    jwt = require('jsonwebtoken'); var 
    session=require('express-session'); var MySQLStore = 
    require('express-mysql-session')(session); 

    var options = { host: 'localhost',// Host name for database 
    connection. port: 3306,// Port number for database connection. user: 
    'root',// Database user. password: '',// Password for the above 
    database user. database: 'node',// Database name. 
    checkExpirationInterval: 900000,// How frequently expired sessions 
    will be cleared; milliseconds. expiration: 1512671400000,// The 
    maximum age of a valid session; milliseconds. createDatabaseTable: 
    true,// Whether or not to create the sessions database table, if one 
    does not already exist. connectionLimit: 10,// Number of connections 
    when creating a connection pool schema: { tableName: 'sessions', 
    columnNames: { session_id: 'session_id', expires: 'expires', data: 
    'data' } } }; 

    var connection = mysql.createConnection(options); // or 
    mysql.createPool(options); var sessionStore = new MySQLStore({}/* 
    session store options */, connection); var router = 
    express.Router(); 

    router.use(session({ name: 'session_cookie_name', secret: 
    'session_cookie_secret', store: sessionStore, resave: false, 
    saveUninitialized: true, cookie: { path: '/', httpOnly: false, 
    secure: false, maxAge: 365 * 24 * 60 * 60 * 1000 } })); 

    router.get('/session', function(req, res, next) { 
    res.setHeader("Access-Control-Allow-Origin", "*"); 
    res.setHeader("Access-Control-Allow-Headers", "Origin, 
    X-Requested-With, Content-Type, Accept"); res.send(req.sessionID); 
    }); 
- 

答えて

0

私はブラウザ

secure: trueのセキュリティを無効にすると、この問題が来ていない、あなたのクッキーは、HTTPSのみdocを介して送信されることを意味します。

httpでアクセスすると、ブラウザはCookieを送信せず、サーバーはそれが新しいセッションだと考えます。

+0

ブラウザのセキュリティを無効にしてセッションを使用する方法は、 – Brijesh

+0

いいえ、httpsを使用する場合は有効にすることができます。 –

+0

ガブリエルは、私が地元で働いているなら、ブラウザーでクッキーに行く方法はあるのかと尋ねたい – Brijesh

関連する問題