Wenn Sie Babel in Ihrem Projekt nicht verwenden, können Sie diese Version ohne Babel ausprobieren.
koa-session2
Middleware für Koa2 zum Abrufen/Festlegen der Sitzungsnutzung mit benutzerdefinierten Stores wie Redis oder Mongodb mit Babel
koa-session2
Middleware für Koa2 zum Abrufen/Festlegen der Sitzungsnutzung mit benutzerdefinierten Stores wie Redis oder Mongodb mit Babel
Wenn Sie Babel in Ihren Projekten nicht verwenden, können Sie diese Version vielleicht ohne Babel ausprobieren.
Installierennpm install koa-session2
Verwendungimport Koa from "koa";<br>
import session from "koa-session2";<br>
<br>
const app = new Koa();<br>
<br>
app.use(session({<br>
key: "SESSIONID", //default "koa:sess" <br>
}));
Koa aus "koa" importieren;
Sitzung aus "koa-session2" importieren;
const app = new Koa();import Redis from "ioredis";<br>
import {Store} from "koa-session2";<br>
<br>
export default class RedisStore extends Store {<br>
constructor() {<br>
super();<br>
this.redis = new Redis();<br>
}<br>
<br>
async get(sid) {<br>
return await this.redis.get(`SESSION:${sid}`);<br>
}<br>
<br>
async set(session, opts) {<br>
if(!opts.sid) {<br>
opts.sid = this.getID(24);<br>
}<br>
await this.redis.set(`SESSION:${opts.sid}`, session);<br>
return opts.sid;<br>
}<br>
<br>
async destroy(sid) {<br>
return await this.redis.del(`SESSION:${sid}`);<br>
}<br>
}
import Koa from "koa";<br>
import session from "koa-session2";<br>
import Store from "./Store.js";<br>
<br>
const app = new Koa();<br>
<br>
app.use(session({<br>
store: new Store()<br>
}));<br>
<br>
app.use(ctx => {<br>
let user = ctx.session.user;<br>
<br>
ctx.session.view = "index";<br>
});
app.use(session({
Schlüssel: "SESSIONID", //default "koa:sess"
}));
Benutzerdefinierte Stores<br>
Store.js<br>Redis aus "ioredis" importieren;<br>
import {Store} aus "koa-session2";<br>
<br>
Export Standardklasse RedisStore extends Store {<br>
Konstruktor() {<br>
super();<br>
this.redis = new Redis();<br>
}<br>
<br>
async get(sid) {<br>
return await this.redis.get(`SESSION:${sid}`);<br>
}<br>
<br>
async set(session, opts) {<br>
if(!opts.sid) {
opts.sid = this.getID(24);
}
wait this.redis.set(`SESSION:${opts.sid}`, session);
return opts.sid;
}
async destroy(sid) {
return await this.redis.del(`SESSION:${sid}`);
}
}
main.jsKoa aus "koa" importieren;
Sitzung aus "koa-session2" importieren;
import Store from ./Store.js";
const app = new Koa();
app.use(session({
Store: new Store()
}));
app.use(ctx => {
let user = ctx.session.user;
ctx.session.view = "index";
});Optionen
Die meisten Optionen basieren auf CookiesSchlüssel: eine Zeichenfolge für die Speichersitzungs-ID im Cookie
Store: eine Klasse für den benutzerdefinierten Store (extend {Store}, func: #get(sid), #set(session, opts), #destory(sid))
maxAge: eine Zahl, die die Millisekunden von Date.now() bis zum Ablauf angibt
läuft ab: ein Datumsobjekt, das das Ablaufdatum des Cookies angibt (läuft standardmäßig am Ende der Sitzung ab).
Pfad: eine Zeichenfolge, die den Pfad des Cookies angibt (standardmäßig /).
domain: eine Zeichenfolge, die die Domain des Cookies angibt (kein Standard).
secure: ein boolescher Wert, der angibt, ob das Cookie nur über HTTPS gesendet werden soll (standardmäßig false für HTTP, standardmäßig true für HTTPS).
httpOnly: ein boolescher Wert, der angibt, ob das Cookie nur über HTTP(S) gesendet und nicht für Client-JavaScript verfügbar gemacht werden soll (standardmäßig true).
signiert: ein boolescher Wert, der angibt, ob das Cookie signiert werden soll (standardmäßig falsch). Wenn dies zutrifft, wird auch ein weiteres Cookie mit demselben Namen und dem angehängten Suffix .sig gesendet, mit einem 27-Byte-URL-sicheren Base64-SHA1-Wert, der den Hash von Cookie-Name=Cookie-Wert gegenüber dem ersten Keygrip-Schlüssel darstellt. Dieser Signaturschlüssel wird verwendet, um Manipulationen zu erkennen, wenn das nächste Mal ein Cookie empfangen wird.
überschreiben: ein boolescher Wert, der angibt, ob zuvor gesetzte Cookies mit demselben Namen überschrieben werden sollen (standardmäßig false). Wenn dies zutrifft, werden alle während derselben Anfrage mit demselben Namen gesetzten Cookies (unabhängig vom Pfad oder der Domäne) beim Setzen dieses Cookies aus dem Set-Cookie-Header herausgefiltert.Lizenz
MIT
KoaHub.js – Koa.js-Webseite für Node.js
官网:http://js.koahub.com