Koa.js - Cookie



Cookie 是簡單的小檔案/資料,隨伺服器請求傳送到客戶端並在客戶端儲存。每次使用者重新載入網站時,此 Cookie 都會隨請求一起傳送。這有助於跟蹤使用者的操作。HTTP Cookie 有多種用途。

  • 會話管理
  • 個性化(推薦系統)
  • 使用者跟蹤

要將 Cookie 與 Koa 一起使用,我們有以下函式:ctx.cookies.set()ctx.cookies.get()。要設定新的 Cookie,讓我們在 Koa 應用中定義一個新的路由。

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);

要檢查 Cookie 是否已設定,只需轉到您的瀏覽器,啟動控制檯並輸入 -

console.log(document.cookie);

這將產生以下輸出(您可能設定了更多 Cookie,可能是由於瀏覽器中的擴充套件程式)。

"foo = bar"

以下是一個上述示例。

Cookie

瀏覽器在每次查詢伺服器時也會發送回 Cookie。要在伺服器上的伺服器控制檯中檢視 Cookie,請在路由中新增以下程式碼。

console.log('Cookies: foo = ', this.cookies.get('foo'));

下次您向此路由傳送請求時,您將獲得以下輸出。

Cookies: foo = bar

新增具有過期時間的 Cookie

您可以新增過期的 Cookie。要新增過期的 Cookie,只需傳遞一個物件,並將“expires”屬性設定為您希望它過期的日期和時間。例如,

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);

刪除現有 Cookie

要取消設定 Cookie,只需將 Cookie 設定為空字串。例如,如果您需要清除名為foo的 Cookie,請使用以下程式碼。

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);

這將取消設定所述 Cookie。請注意,當不在客戶端程式碼中使用 Cookie 時,應保留HttpOnly選項為真。

廣告

© . All rights reserved.