프로젝트에서 Babel을 사용하지 않는 경우 Babel 없이 이 버전을 사용해 볼 수 있습니다.
koa 세션2
Redis 또는 Babel이 포함된 mongodb와 같은 사용자 정의 스토어에서 세션 사용을 가져오거나 설정하는 Koa2용 미들웨어
koa 세션2
Redis 또는 Babel이 포함된 mongodb와 같은 사용자 정의 스토어에서 세션 사용을 가져오거나 설정하는 Koa2용 미들웨어
프로젝트에서 Babel을 사용하지 않는 경우 Babel 없이 이 버전을 사용해 볼 수도 있습니다.
설치npm install koa-session2
사용import 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"에서 Koa 가져오기;
"koa-session2"에서 세션 가져오기;
const app = 새로운 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(세션({
키: "SESSIONID", //기본값 "koa:sess"
}));
맞춤형 스토어<br>
Store.js<br>'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) {
opts.sid = this.getID(24);
}
wait this.redis.set(`SESSION:${opts.sid}`, session);
opts.sid 반환;
}
비동기 파괴(sid) {
반환을 기다리고 this.redis.del(`SESSION:${sid}`);
}
}
main.js"koa"에서 Koa 가져오기;
"koa-session2"에서 세션 가져오기;
"./Store.js"에서 Store 가져오기;
const app = 새로운 Koa();
app.use(세션({
상점: 새 스토어()
}));
app.use(ctx => {
let 사용자 = ctx.session.user;
ctx.session.view = "색인";
});옵션
쿠키를 기반으로 하는 대부분의 옵션키: 쿠키의 세션 ID 저장 문자열
store: 맞춤 스토어를 위한 클래스({Store} 확장, func: #get(sid), #set(session, opts), #destory(sid))
maxAge: Date.now()에서 만료되는 밀리초를 나타내는 숫자
만료: 쿠키의 만료 날짜를 나타내는 날짜 개체(기본적으로 세션 종료 시 만료됨).
경로: 쿠키의 경로를 나타내는 문자열(기본적으로 /)
domain: 쿠키의 도메인을 나타내는 문자열(기본값 없음)
secure: 쿠키가 HTTPS를 통해서만 전송되는지 여부를 나타내는 부울입니다(HTTP의 경우 기본적으로 false, HTTPS의 경우 기본적으로 true).
httpOnly: 쿠키가 HTTP(S)를 통해서만 전송되고 클라이언트 JavaScript에서는 사용할 수 없는지 여부를 나타내는 부울입니다(기본적으로 true).
signed: 쿠키가 서명되는지 여부를 나타내는 부울입니다(기본적으로 false). 이것이 사실이라면 동일한 이름에 .sig 접미사가 추가된 또 다른 쿠키도 첫 번째 키그립 키에 대한 쿠키 이름=쿠키 값의 해시를 나타내는 27바이트 URL 안전 base64 SHA1 값과 함께 전송됩니다. 이 서명 키는 다음에 쿠키가 수신될 때 변조를 감지하는 데 사용됩니다.
overwrite: 이전에 설정한 동일한 이름의 쿠키를 덮어쓸지 여부를 나타내는 부울입니다(기본적으로 false). 이것이 사실인 경우, 동일한 요청 중에 동일한 이름으로 설정된 모든 쿠키는(경로 또는 도메인에 관계없이) 이 쿠키를 설정할 때 Set-Cookie 헤더에서 필터링됩니다.라이선스
MIT
KoaHub.js -- 基于 Koa.js 平台的 Node.js 웹 快速开发框架
官网:http://js.koahub.com

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
