Koa.js - Cookie
Cookie là các tệp / dữ liệu nhỏ, đơn giản được gửi đến máy khách với yêu cầu máy chủ và được lưu trữ ở phía máy khách. Mỗi khi người dùng tải lại trang web, cookie này sẽ được gửi kèm theo yêu cầu. Điều này giúp theo dõi các hành động của người dùng. Có rất nhiều cách sử dụng HTTP Cookies.
- Quản lý phiên
- Cá nhân hóa (Hệ thống khuyến nghị)
- Theo dõi người dùng
Để sử dụng cookie với Koa, chúng tôi có các chức năng: ctx.cookies.set() và ctx.cookies.get(). Để đặt một cookie mới, hãy xác định một tuyến đường mới trong ứng dụng Koa của chúng tôi.
var koa = require('koa');
var router = require('koa-router');
var app = koa();
_.get('/', setACookie);
function *setACookie() {
this.cookies.set('foo', 'bar', {httpOnly: false});
}
var _ = router();
app.use(_.routes());
app.listen(3000);
Để kiểm tra xem cookie đã được đặt hay chưa, chỉ cần truy cập trình duyệt của bạn, khởi động bảng điều khiển và nhập -
console.log(document.cookie);
Điều này sẽ tạo ra kết quả sau (bạn có thể đặt nhiều cookie hơn có thể do các tiện ích mở rộng trong trình duyệt của bạn).
"foo = bar"
Đây là một ví dụ về điều trên.
Trình duyệt cũng gửi lại cookie mỗi khi nó truy vấn máy chủ. Để xem cookie trên máy chủ của bạn, trên bảng điều khiển máy chủ trong một tuyến, hãy thêm mã sau vào tuyến đó.
console.log('Cookies: foo = ', this.cookies.get('foo'));
Lần tới khi bạn gửi yêu cầu đến tuyến đường này, bạn sẽ nhận được kết quả sau.
Cookies: foo = bar
Thêm cookie có thời gian hết hạn
Bạn có thể thêm các cookie hết hạn. Để thêm một cookie hết hạn, chỉ cần chuyển một đối tượng có thuộc tính 'expires' được đặt vào thời điểm bạn muốn nó hết hạn. Ví dụ,
var koa = require('koa');
var router = require('koa-router');
var app = koa();
_.get('/', setACookie);
function *setACookie(){
//Expires after 360000 ms from the time it is set.
this.cookies.set('name', 'value', {
httpOnly: false, expires: 360000 + Date.now() });
}
var _ = router();
app.use(_.routes());
app.listen(3000);
Xóa các cookie hiện có
Để hủy đặt một cookie, chỉ cần đặt cookie thành một chuỗi trống. Ví dụ: nếu bạn cần xóa một cookie có tênfoo, sử dụng đoạn mã sau.
var koa = require('koa');
var router = require('koa-router');
var app = koa();
_.get('/', setACookie);
function *setACookie(){
//Expires after 360000 ms from the time it is set.
this.cookies.set('name', '');
}
var _ = router();
app.use(_.routes());
app.listen(3000);
Điều này sẽ hủy đặt cookie đã nói. Lưu ý rằng bạn nên đểHttpOnly tùy chọn đúng khi không sử dụng cookie trong mã phía máy khách.