2011-10-19 4 views
5

Tôi đang sử dụng Connect.js và mô-đun kết nối phiên để quản lý cookie phiên. Tôi nhận thấy rằng Connect thiết lập một cookie phiên trên tất cả các tuyến trừ các tệp tĩnh. Vấn đề là tôi xử lý một số tệp tĩnh như JS và tệp CSS trước khi gửi chúng, vì vậy tôi không thể sử dụng máy chủ tĩnh tích hợp của Connect, có nghĩa là phiên kết nối thiết lập cookie phiên cho các tệp này. Vì các tệp này sẽ được đưa vào các trang web bên ngoài, tôi không muốn chúng gửi cookie với chúng.Cookie phiên chỉ dành cho các tuyến đường cụ thể

Chỉ có thể đặt cookie phiên cho các tuyến đường cụ thể không?

+0

'app.use ('/ session-only', express.session());' nên hoạt động. – OneOfOne

+3

[Vấn đề này] (https://github.com/senchalabs/connect/issues/307) có thể bạn quan tâm. – jweyrich

Trả lời

2

Được rồi tôi tìm thấy câu trả lời của tôi ở đây: http://senchalabs.github.com/connect/middleware-session.html

Bạn có thể bỏ qua các tuyến đường bằng cách sử dụng connect.session.ignore như vậy: connect.session.ignore.push('/robots.txt');

+3

Không còn nữa: https://github.com/senchalabs/connect/commit/73bf05479cee5b7e8e4e7ba27b45be16a303c912#lib/middleware/session.js –

+0

Hmm, cảm ơn bạn đã chỉ ra điều đó. Bất kỳ thay thế nào? –

+0

Giả sử bạn có thể lấy phần mềm trung gian phiên trong một biến, 'var session = express.session ({key: 'blah'});' và sau đó chỉ cần viết một phần mềm trung gian gọi 'session.apply (express, arguments)' trên đường dẫn bạn muốn phần mềm trung gian phiên –

2

nếu bạn đang sử dụng rõ ràng, bạn có thể đặt app.use(express.static(path.join(__dirname, 'public'))); trước app.use(express.session());.