Совместное использование сеансов между php и узлом

Есть ли недавний справочник (или примерный код) для использования node, express и redis / predis для совместного использования PHPSESSID?

Я нашел несколько учебных пособий 1-2 года, и все они либо используют старые версии, либо не используют express.

Экспресс-куки-парсер также устарел.

PHP and Node.JS session share using Redis

Узел NodeJS + ExpressJS + RedisStore не определен

Было бы здорово, если бы кто-то мог опубликовать еще один код …

EDIT – извлечение кода узла сервера до сих пор:

var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server), redis = require('redis'), client = redis.createClient(); var session = require('express-session'), RedisStore = require('connect-redis')(session); app.get('/', function(req, res) { res.sendfile('/'); }); app.use( session({ name: 'PHPSESSID' store: new RedisStore({ prefix: 'PHPSESSID', port: 6379 }) }) ); io.sockets.on('connection', function (socket) { app.use(function(req, res, next) { console.log(req.session); }); ....... 

Пакеты:

 ├─┬ [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ └─┬ [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ ├── [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ ├── [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ ├─┬ [email protected] │ │ │ ├── [email protected] │ │ │ ├── [email protected] │ │ │ ├── [email protected] │ │ │ └── [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ ├─┬ [email protected] │ │ └─┬ [email protected] │ │ ├── [email protected] │ │ ├── [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ ├─┬ [email protected] │ │ └── [email protected] │ └── [email protected] ├─┬ [email protected] │ └── [email protected] ├─┬ [email protected] │ ├─┬ [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected]1.0 │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ └── [email protected] │ └── [email protected] ├─┬ [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ └── [email protected] ├─┬ [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ ├── [email protected] │ │ ├── [email protected] │ │ ├── [email protected] │ │ └── [email protected] │ └── [email protected] ├── [email protected] └─┬ [email protected] ├── [email protected] ├── [email protected] ├── [email protected] └─┬ [email protected] ├─┬ [email protected] │ └── [email protected] ├── [email protected] ├─┬ [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ └── [email protected] └── [email protected] 

    Для узла (и Express 4.x):

    Начните с примера из express-сессии , но вместо этого используйте connect-redis в качестве хранилища сеансов.

    Пример кода:

     var express = require('express'), app = express(), cookieParser = require('cookie-parser'), session = require('express-session'), RedisStore = require('connect-redis')(session); app.use(express.static(__dirname + '/public')); app.use(function(req, res, next) { if (req.url.indexOf('favicon') > -1) return res.send(404); next(); }); app.use(cookieParser()); app.use(session({ store: new RedisStore({ // this is the default prefix used by redis-session-php prefix: 'session:php:' }), // use the default PHP session cookie name name: 'PHPSESSID', secret: 'node.js rules' })); app.use(function(req, res, next) { req.session.nodejs = 'Hello from node.js!'; res.send(JSON.stringify(req.session, null, ' ')); }); app.listen(8080); 

    Для PHP:

    Используйте обработчик сеанса redis, например redis-session-php .

    Пример кода:

      

    Примечание. Убедитесь, что вы используете один и тот же prefix (connect-redis) / REDIS_SESSION_PREFIX (redis-session-php) (connect-redis использует «sess:», а redis-session-php использует «session: php:» по умолчанию) и ttl (connect-redis) / session.gc_maxlifetime (PHP) (и та же firebase database, если вы используете базу данных redis, отличную от по умолчанию) для redis-session-php и connect-redis.

    Давайте будем гением компьютера.