Tôi dường như không thể tìm cách thiết lập cookie an toàn trong khuôn khổ expressjs. Có một lựa chọn để làm điều này ở đâu đó?Cookie phiên bảo mật của Expressjs
Trả lời
Dựa trên documentation, hãy thử này:
res.cookie('rememberme', 'yes', { expires: new Date(Date.now() + 900000), httpOnly: true, secure: true });
Sử dụng res.cookie(name, val[, options])
đặt tên cookie cho val
, với các tùy chọn httpOnly
, secure
, expires
, vv path
mặc định tùy chọn để thiết lập basepath
của ứng dụng, mà thường là "/"
.
Xem docs for res.cookie
để biết thêm chi tiết.
Nếu bạn là sau một proxy, bạn cũng phải đảm bảo nó được gửi X-Forwarded-Proto
header và rằng bạn thiết lập các tùy chọn proxy:
app.use(express.session({
proxy: true,
secret: 'test',
cookie: {
secure: true
}
}));
Ngoài ra, bạn có thể nói Express để tin tưởng proxy trên toàn cầu:
app.set('trust proxy', 1)
'proxy: true' là thủ phạm đối với tôi trên nodejitsu, cảm ơn! –
Vấn đề tương tự trên Heroku và Modulus. Câu trả lời được chấp nhận không được chấp nhận, đây là cách để đi. –
tôi cũng đã thử đặt nó trong đối tượng cài đặt phiên như trong tài liệu kết nối. Giống như 'khóa:' session_cookie ', cookie: {maxAge: bl bla, secure: true} 'Nhưng nó không hoạt động:/Tôi có thể thay đổi tên và vân vân, nhưng không đặt nó thành an toàn. Không thể tìm thấy bất cứ điều gì về điều này ... – georgesamper
hiện optoin httpOnly làm việc cho bạn? – dchrastil
Có tùy chọn đó cũng hoạt động! người duy nhất không hoạt động là tùy chọn an toàn. Không thể tìm ra cái này haha – georgesamper