Express を使用しているため Connect を使用しているため、Connect ミドルウェアを使用します。特にセッションミドルウェア。Connect のセッション ミドルウェアには、ストア (セッションのものを保存する場所) の概念があります。そのストアは、メモリ内 (デフォルト) またはデータベース内にあります。したがって、redis ストア (connect-redis) を使用します。
var express = require('express'),
RedisStore = require('connect-redis')(express),
util = require('util');
var redisSessionStoreOptions = {
host: config.redis.host, //where is redis
port: config.redis.port, //what port is it on
ttl: config.redis.ttl, //time-to-live (in seconds) for the session entry
db: config.redis.db //what redis database are we using
}
var redisStore = new RedisStore(redisSessionStoreOptions);
redisStore.client.on('error', function(msg){
util.log('*** Redis connection failure.');
util.log(msg);
return;
});
redisStore.client.on('connect', function() {
util.log('Connected to Redis');
});
app = express();
app.use(express.cookieParser());
app.use(express.session({
store: redisStore,
cookie: { path: '/',
httpOnly: true, //helps protect agains cross site scripting attacks - ie cookie is not available to javascript
maxAge: null },
secret: 'magic sauce', //
key: 'sessionid' //The name/key for the session cookie
}));
Connect セッション マジックは、すべてのルートに渡される「req」オブジェクトにセッションの詳細を配置します。この方法では、redis クライアントをあちこちに渡す必要はありません。req オブジェクトが機能するようにします。とにかく、各ルート ハンドラーで無料で取得できます。
必ず実行してください: npm install connect-redis