私はexpressjsを使用していて、セッションを使用してログインするためにユーザーを認証したいと考えています。サイト/アプリは、一方ではユーザーがステートレスWebページでさまざまな製品や情報を閲覧および調査できるようにし、これらのページをキャッシュできるようにする必要がありますが、他方では、ユーザーがログインしてセッションを使用して取得したさまざまなコンテンツにアクセスできるようにする機能を備えている必要があります。
したがって、ルートのサブセットではセッション状態をアクティブにし、補完的なサブセット(残りのルート)ではエクスプレスセッションを非アクティブにして、これらのページをキャッシュできるようにする必要があります。
どうすればこれをクリーンな方法で行うことができますか?
セッションをアクティブ化するルートが「/kj%C3%B8p」、「/ bibliotek」、「/register」であるとします。
私は次のようなことを試みました
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
var pageName = 'somepage';
var oneYear = 1000*60*60*24*365;
app.use(express.bodyParser());
app.use('/kj%C3%B8p', express.cookieParser());
app.use('/kj%C3%B8p', express.session({key: pageName, secret: 'someCode', store: new RedisStore, cookie: {path:'/', maxAge: (5*oneYear), httpOnly: true}}));
app.use('/bibliotek', express.cookieParser());
app.use('/bibliotek', express.session({key: pageName, secret: 'someCode', store: new RedisStore, cookie: {path: '/', maxAge: (5*oneYear), httpOnly: true}}));
app.use('/registrer', express.cookieParser());
app.use('/registrer', express.session({key: pageName, secret: 'someCode', store: new RedisStore, cookie: {path:'/', maxAge: (5*oneYear), httpOnly: true}}));
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
しかし、これは3つのルートのそれぞれのセッションオブジェクトを再生成し、かなり厄介に見えます。任意のヒント?