Đối với nút (và Express 4.x):
Bắt đầu với ví dụ từ express-session, nhưng thay vào đó hãy sử dụng connect-redis làm nơi lưu trữ phiên của bạn.
Mã mẫu:
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);
Đối với PHP:
Sử dụng trình xử lý phiên redis như redis-session-php.
Mã mẫu:
<?php
// from https://github.com/TheDeveloper/redis-session-php
require('redis-session-php/redis-session.php');
RedisSession::start();
$_SESSION["php"] = "Hello from PHP";
// `cookie` is needed by express-session to store information
// about the session cookie
if (!isset($_SESSION["cookie"]))
$_SESSION["cookie"] = array();
var_dump($_SESSION);
?>
Lưu ý:Đảm bảo rằng bạn sử dụng cùng một tiền tố prefix
(connect-redis) / REDIS_SESSION_PREFIX
(redis-session-php) (connect-redis sử dụng 'sess:' và redis-session-php sử dụng 'session:php:' theo mặc định) và ttl
(connect-redis) / session.gc_maxlifetime
(PHP) (và cùng một cơ sở dữ liệu nếu bạn đang sử dụng cơ sở dữ liệu redis khác với cơ sở dữ liệu mặc định) cho cả redis-session-php và connect-redis.