如果您沒有在專案中使用Babel,沒有Babel你也可以試試這個版本。
koa-session2
Koa2 的中間件,用於獲取/設定會話,與自訂儲存(例如 Redis 或帶有 Babel 的 mongodb)一起使用
koa-session2
Koa2 的中間件,用於獲取/設定會話,與自訂儲存(例如 Redis 或帶有 Babel 的 mongodb)一起使用
如果你的專案中沒有使用 babel,也許你可以嘗試這個沒有 babel 的版本。
安裝npm 安裝 koa-session2
使用從「koa」導入 Koa;<br>
從“koa-session2”導入會話;<br>
<br>
const app = new Koa();<br>
<br>
應用程式.use(會話({<br>
key: “SESSIONID”, //預設「koa:sess」<br>
}));
定製商店
Store.js從「ioredis」導入 Redis;<br>
從“koa-session2”導入 {Store};<br>
<br>
匯出預設類別 RedisStore 擴充 Store{<br>
構造函數(){<br>
超級();<br>
this.redis = new Redis();<br>
}<br>
<br>
異步 get(sid) {<br>
返回等待 this.redis.get(`SESSION:${sid}`);<br>
}<br>
<br>
非同步集(會話、選項){<br>
if(!opts.sid) {<br>
opts.sid = this.getID(24);<br>
}<br>
等待 this.redis.set(`SESSION:${opts.sid}`, session);<br>
返回 opts.sid;<br>
}<br>
<br>
非同步銷毀(sid){<br>
返回等待 this.redis.del(`SESSION:${sid}`);<br>
}<br>
}
main.js從「koa」導入 Koa;<br>
從“koa-session2”導入會話;<br>
從“./Store.js”導入商店;<br>
<br>
const app = new Koa();<br>
<br>
應用程式.use(會話({<br>
商店:新店()<br>
}));<br>
<br>
app.use(ctx => {<br>
讓 user = ctx.session.user;<br>
<br>
ctx.session.view =「索引」;<br>
});
選項
大多數選項基於 cookiekey:cookie 中儲存會話 ID 的字串<br>
<br>
store:自訂商店的類別(擴充{Store},func:#get(sid),#set(session,opts),#destory(sid))<br>
<br>
maxAge:一個數字,代表 Date.now() 到期的毫秒數<br>
<br>
過期:一個 Date 對象,指示 cookie 的過期日期(預設在會話結束時過期)。 <br>
<br>
路徑:一個字串,表示 cookie 的路徑(預設為 /)。 <br>
<br>
域:一個字串,表示 cookie 的域(無預設值)。 <br>
<br>
secure:一個布林值,指示 cookie 是否僅透過 HTTPS 發送(HTTP 預設為 false,HTTPS 預設為 true)。 <br>
<br>
httpOnly:一個布林值,指示 cookie 是否僅透過 HTTP(S) 發送,而不可供客戶端 JavaScript 使用(預設為 true)。 <br>
<br>signed:一個布林值,指示 cookie 是否要簽署(預設為 false)。如果這是真的,則還會發送另一個同名並附加.sig 後綴的cookie,其中包含27 位元組URL 安全的base64 SHA1 值,表示cookie-name=cookie-value 與第一個Keygrip 鍵的哈希值。 此簽章金鑰用於下次收到 cookie 時偵測竄改行為。 <br>
<br>
overwrite:布林值,指示是否覆寫先前設定的同名 cookie(預設為 false)。 如果這是真的,則在設定此 cookie 時,在相同請求期間使用相同名稱(無論路徑或網域)設定的所有 cookie 都會從 Set-Cookie 標頭中過濾掉。
許可證
麻省理工學院
KoaHub.js -- 基於 Koa.js 平台的 Node.js web 快速開發框架
官網:http://js.koahub.com