Hướng dẫn res.cookie nodejs - res.cookie nodejs

Trong bài này chúng ta sẽ cùng nhau đi tìm hiểu về cookie trong Express. Khái niệm về cookie chắc hẳn đã khá quen thuộc với các bạn lập trình web nói chung và lập trình NodeJS nói riêng. cookie trong Express. Khái niệm về cookie chắc hẳn đã khá quen thuộc với các bạn lập trình web nói chung và lập trình NodeJS nói riêng.

Hướng dẫn res.cookie nodejs - res.cookie nodejs

Hướng dẫn res.cookie nodejs - res.cookie nodejs

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.freetuts.net, không được copy dưới mọi hình thức.

Vậy Cookie trong NodeJS hoạt động ra sao thì chúng ta cùng tìm hiểu nhé.

Cookie là những tập tin một trang web gửi đến máy người dùng và được lưu lại thông qua trình duyệt khi người dùng truy cập trang web đó. Cookie được dùng để lưu trữ với rất nhiều mục đích như lưu phiên đăng nhập, hoạt động của người dùng khi truy cập trang web.là những tập tin một trang web gửi đến máy người dùng và được lưu lại thông qua trình duyệt khi người dùng truy cập trang web đó. Cookie được dùng để lưu trữ với rất nhiều mục đích như lưu phiên đăng nhập, hoạt động của người dùng khi truy cập trang web.

Cookie có nhiều loại khác nhau và phân chia theo từng mục đích sử dụng. Dưới đây là một số loại cookie để bạn tham khảo, ngoài ra còn nhiều loại cookie khác, bạn có thể tự mình tìm hiểu thêm : có nhiều loại khác nhau và phân chia theo từng mục đích sử dụng. Dưới đây là một số loại cookie để bạn tham khảo, ngoài ra còn nhiều loại cookie khác, bạn có thể tự mình tìm hiểu thêm :

Bài viết này được đăng tại [free tuts .net]

  • Session Cookie: chỉ tồn tại tạm thời trong bộ nhớ của trình duyệt và sẽ bị trình duyệt tự xóa khi người dùng hết phiên đăng nhập, thông thường loại cookie này không có thời hạn.chỉ tồn tại tạm thời trong bộ nhớ của trình duyệt và sẽ bị trình duyệt tự xóa khi người dùng hết phiên đăng nhập, thông thường loại cookie này không có thời hạn.
  • Third-party cookie : thông thường cookie của trang web sẽ trùng với thanh địa chỉ của trình duyệt nhưng có một vài trường hợp sử dụng cookie bên thứ 3 có tên miền khác với url trang webthông thường cookie của trang web sẽ trùng với thanh địa chỉ của trình duyệt nhưng có một vài trường hợp sử dụng cookie bên thứ 3 có tên miền khác với url trang web
  • Secure cookie: một loại cookie HTTP có bộ thuộc tính secure giới hạn phạm vi của cookie đối với trình duyệt web.một loại cookie HTTP có bộ thuộc tính secure giới hạn phạm vi của cookie đối với trình duyệt web.

Để sử dụng cookie trong express chúng ta cần phải cài thêm một vài middleware bên thứ 3 để hỗ trợ việc sử dụng cookie, nếu bạn chưa hiểu middleware là gì thì hãy xem lại bài tìm hiểu về middleware trong Express. Ở đây mình sử dụng middleware có tên

//Sử dụng express
const express = require('express')
//Sử dụng module cookie-parse
const cookieParser = require('cookie-parser')
//Khởi tạo app express mới
const app = express()
//Khai báo sử dụng middleware cookieParse()
app.use(cookieParser())
1, để cài đặt
//Sử dụng express
const express = require('express')
//Sử dụng module cookie-parse
const cookieParser = require('cookie-parser')
//Khởi tạo app express mới
const app = express()
//Khai báo sử dụng middleware cookieParse()
app.use(cookieParser())
1 ta mở terminal lên và gõ dòng lệnh :

npm i --save cookie-parser

Để có thể sử dụng cookie-parser chúng ta cần thêm middleware này vào trong dự án express của mình bằng cách khai báo sử dụng middleware cookieParse() :cookie-parser chúng ta cần thêm middleware này vào trong dự án express của mình bằng cách khai báo sử dụng middleware cookieParse() :

//Sử dụng express
const express = require('express')
//Sử dụng module cookie-parse
const cookieParser = require('cookie-parser')
//Khởi tạo app express mới
const app = express()
//Khai báo sử dụng middleware cookieParse()
app.use(cookieParser())

Chúng ta có thể truyền vào method này 2 tham số :

cookieParser(secret, options)

  • secret: Có thể truyền vào đây một chuỗi hoặc một mảng dùng để signed cookie. Đây là trường không bắt buộc, nếu được truyền vào một chuỗi thì sẽ lấy chuỗi đó để sign cookie, một mảng thì tạm thời nó sẽ dùng để unsign cookie theo thứ tự của mảng.Có thể truyền vào đây một chuỗi hoặc một mảng dùng để signed cookie. Đây là trường không bắt buộc, nếu được truyền vào một chuỗi thì sẽ lấy chuỗi đó để sign cookie, một mảng thì tạm thời nó sẽ dùng để unsign cookie theo thứ tự của mảng.
  • options: truyền vào một object dùng để thêm vào
    //Sử dụng express
    const express = require('express')
    //Sử dụng module cookie-parse
    const cookieParser = require('cookie-parser')
    //Khởi tạo app express mới
    const app = express()
    //Khai báo sử dụng middleware cookieParse()
    app.use(cookieParser())
    3
    truyền vào một object dùng để thêm vào
    //Sử dụng express
    const express = require('express')
    //Sử dụng module cookie-parse
    const cookieParser = require('cookie-parser')
    //Khởi tạo app express mới
    const app = express()
    //Khai báo sử dụng middleware cookieParse()
    app.use(cookieParser())
    3

Để tạo một cookie mới ta sử dụng cú pháp:

res.cookie(name, value, [options])

chúng ta có 3 tham số có thể thêm vào :

  • name: tên của cookie cần thêm vào (bắt buộc)tên của cookie cần thêm vào (bắt buộc)
  • value: giá trị của cookie (bắt buộc)giá trị của cookie (bắt buộc)
  • options: các tùy chỉnh kháccác tùy chỉnh khác

tham số options là một objects có thể có các thuộc tính như :

Thuộc tính Kiểu dữ liệu Miêu tả
domain string Domain của cookie, thường sẽ là domain của app
encode function Hàm dùng để encode cookie, mặc định là
//Sử dụng express
const express = require('express')
//Sử dụng module cookie-parse
const cookieParser = require('cookie-parser')
//Khởi tạo app express mới
const app = express()
//Khai báo sử dụng middleware cookieParse()
app.use(cookieParser())
4
expires date Thời điểm và cookie hết hạn, nếu không có giá trị hoặc giá trị bằng 0, nó sẽ tạo ra session cookie
httpOnly boolean Đánh dấu cookie chỉ có thể truy cập ở máy chủ web
maxAge number Thời gian hết hạn của cookie so với thời điểm đặt cookie, tính bằng mili giây
path string Domain của cookie, thường sẽ là domain của app
encode boolean Đánh dấu cookie chỉ có thể truy cập ở máy chủ web
maxAge boolean Đánh dấu cookie chỉ có thể truy cập ở máy chủ web
maxAge number Thời gian hết hạn của cookie so với thời điểm đặt cookie, tính bằng mili giây

path

path của cookie, mặc định là '/'

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
app.use(cookieParser())
app.get('/cookie', function(req, res){
     res.cookie('name', 'freetuts.net', { expires: new Date(Date.now() + 900000)});
     res.send('success') 
});
app.listen(3000)

secure

Đánh dấu cookie chỉ có thể được sử dụng ở giao thức https Dev Tools -> Application -> Cookies

Hướng dẫn res.cookie nodejs - res.cookie nodejs

signed

Đánh dấu cookie nên được signed

sameSite

boolean hoặc string

app.get('/getCookie', function(req, res){
    if (req.cookies.name)
        res.send(`Cookie name co gia tri la ${req.cookies.name}`)
   res.send('Khong the tim lay cookie co ten la name')
});

Giá trị sameSite của thuộc tính Set-Cookie

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
app.use(cookieParser())
app.get('/cookie', function(req, res){
     res.cookie('name', 'freetuts.net', { expires: new Date(Date.now() + 900000)});
     res.send('coookie set') 
});
app.get('/getCookie', function(req, res){
    if (req.cookies.name)
        res.send(`Cookie name co gia tri la ${req.cookies.name}`)
   res.send('Khong the tim lay cookie co ten la name')
});
app.listen(3000)

Làm ví dụ về Cookie

Chúng ta cùng tạo một ví dụ nhỏ về tạo cookie. Tạo file

//Sử dụng express
const express = require('express')
//Sử dụng module cookie-parse
const cookieParser = require('cookie-parser')
//Khởi tạo app express mới
const app = express()
//Khai báo sử dụng middleware cookieParse()
app.use(cookieParser())
5 có nội dung như sau:

Cookie name co gia tri la freetuts.net

mở terminal lên và chạy dòng lệnh:

Khong the tim lay cookie co ten la name

Lấy giá trị của cookie

res.clearCookie(cookieName, [options]);

Chúng ta có thể lấy giá trị của cookie bằng cách sử dụng cú pháp :

//Sử dụng express
const express = require('express')
//Sử dụng module cookie-parse
const cookieParser = require('cookie-parser')
//Khởi tạo app express mới
const app = express()
//Khai báo sử dụng middleware cookieParse()
app.use(cookieParser())
0

Thêm một route vào file

//Sử dụng express
const express = require('express')
//Sử dụng module cookie-parse
const cookieParser = require('cookie-parser')
//Khởi tạo app express mới
const app = express()
//Khai báo sử dụng middleware cookieParse()
app.use(cookieParser())
8 trong ví dụ trước bằng cách sử dụng :

Hướng dẫn res.cookie nodejs - res.cookie nodejs

Trước tiên, chương trình sẽ kiểm tra cookie có tổn tại hay không ? Tiếp theo chương trình sẽ kiểm tra nếu cookie chưa tồn tại, nó sẽ tạo ra một cookie để chứa giá trị của sessionID đồng thời cũng lưu trữ giá trị sessionID này trong database.

Trong bài này chúng ta đã cùng nhau đi tìm hiểu về cách xử lý cookie trong Express, đây là kiến thức rất cơ bản về nó nhưng cũng hết sức quan trọng trong quá trình làm việc với Express. Mong rằng bài viết sẽ giúp ích cho bạn.cách xử lý cookie trong Express, đây là kiến thức rất cơ bản về nó nhưng cũng hết sức quan trọng trong quá trình làm việc với Express. Mong rằng bài viết sẽ giúp ích cho bạn.