Cookie 為一個能夠儲存資料在瀏覽器的小型資料庫且能夠在 client 端 和 server 端讀取和寫入
試著在前端寫點 cookie
首先可以先試著打開 google 搜尋首頁,試著輸入
1 | document.cookie |
就會撈出一些可以撈的 cookie 資訊,一些不能撈的通常都會是 httpOnly 不能透過 JS 去撈取
這也是資安的關係
通常寫入 cookie 會如下:
1 | document.cookie="myName=John" |
這時候在 cookie 看,就會多一則 myName 的資訊
有時候會希望 cookie 放的內容,有時效性
這時候可以這樣寫:
1 | document.cookie="myName=John; expires=GMT時間字串;" |
另外一個寫法是,假設想要 10 秒過後失效:
1 | document.cookie="myName=John; max-age=10;" |
變成是 max-age 屬性
Express 的套件 Cookie-parser
用 express-generator 快速產生一個專案後,會發現裡面有一個 cookie-parser 的套件可以做使用
它是用來解析 cookie 的工具
在 index.ejs 寫入 cookie:
1 | document.cookie = "testConsole=TEST" |
在 routes/index.js 接收:
1 | router.get('/', function(req, res, next) { |
頁面刷新後,就會發現 console 把前端撰寫的 cookie 給帶回來後端了
如果今天反過來,想要從後端把資料帶進去 cookie 給前端呢?
一樣在 routes/index.js 撰寫,只不過這次是透過 res 下去寫:
1 | router.get('/', function(req, res, next) { |
這個時候可以在 index.ejs 的 cookie 就可以看到從後端傳過來的 cookie 資訊