expressjs와 협력 중이며 세션을 사용하여 로그인 할 때 사용자를 인증하려고합니다. 사이트/앱은 한편으로는 사용자가 이러한 페이지의 캐싱을 허용하는 Stateless 웹 페이지의 여러 제품 및 정보를 탐색하고 조사 할 수 있어야하지만 다른 한편으로 세션을 사용하여 사용자가 로그인하고 다른 콘텐츠에 액세스 할 수있게하는 기능을 가져야합니다 .Express.js 세션이 경로 하위 집합에서 활성화되었습니다.
내 경로의 하위 집합에 대해 세션 상태를 활성화하고 상속 하위 집합 (내 경로의 나머지 부분)에 대해 익스프레스 세션을 비활성화해야 이러한 페이지를 캐싱 할 수 있습니다.
어떻게해야합니까?
세션을 활성화하려는 경로가 '/ 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'));
});
같은 시도하지만이 세 가지 경로 각각에 대한 세션 객체를 다시 생성하고, 아주 지저분한 것 같다. 어떤 팁?
와우, 이것은 아주 깨끗한 해결책입니다. – rdrey
감사합니다. 정말로 깨끗합니다. – torgebo
이 접근법에 대한 실질적인 문제가있는 것으로 보입니다. - 페이지의 다른 소스가 app.use를 호출하기 때문에 거부 기능을 사용하는 것이 효과가없는 것 같습니다 (예 : 페이지의 이미지가 app.use를 호출 함). 이들을 지정해야한다는 것을 부인하십시오.) – torgebo