作者:吳祐賓
這篇文章會介紹 Express 加入 Session 中介軟體後具備狀態管理能力,處理機敏資料來說,Session 仍是一個還蠻不錯的機制,不一定需要全有或是全無。接下來帶您一步一步將 Session 功能建立起來。
安裝 express-session 套件
express-session 安裝是在 Terminal 下輸入以下指令:
npm install express-session
建立 Session 中介軟體
建立 Session 中介軟體讓每個 request 進來時都要先經過它來處理及管理 session。將以下的程式碼複製到 server.js 裡。
const session = require('express-session'); // 設定 express-session 中介軟體 app.use(session({ secret: 'your-secret-key', resave: false, saveUninitialized: true, }));
以下是對這段程式碼的解釋:
express-session
是一個 Express 中的中介軟體,它用於管理用戶的會話,並將會話資訊存儲在伺服器端。這是一種在無狀態的 HTTP 協議上實現有狀態的解決方案。app.use(session(...))
:這行程式碼使用app.use
方法將express-session
中介軟體套用到 Express 應用程式中。這確保在每個請求進入伺服器之前,express-session
中介軟體都會處理和管理會話。中介軟體的設定選項:
secret
:這是一個字串,用於簽署(sign)用戶會話,以防止被竄改。應該是一個安全的隨機字串,這是確保會話安全性的一部分。resave
:如果為true
,則每次請求進來時都會重新保存會話,即使是未修改的。這通常設置為false
,以避免不必要的會話存儲操作。saveUninitialized
:如果為true
,則未初始化的會話也會被保存。未初始化的會話是指新會話但未被修改的會話。通常設置為true
。
這段程式碼確立了一個基本的 express-session
配置,以啟用用戶會話的管理功能。這樣,當用戶進行登入等操作時,你就可以使用 req.session
物件來存儲和訪問相關的會話資訊。底下可以看到使用 session 前和使用 session 後的 response 內容。
使用 session 前 |
使用 session 後 |
總結
使用 session 中介軟體可以使 Express RESTful 服務提供會話機制,在日後如果要管理使用者狀態是一個不可或缺的套件,而透過實作可以知道,要在 Express 上建立中介軟體也是一件非常簡單的事。我們之後在深入開發時還會再用到它。
和你分享。
See also
文首圖片來源: 攝影師:SHVETS production: https://www.pexels.com/zh-tw/photo/7176317/
沒有留言:
張貼留言