fib 세션
fibjs용 세션 미들웨어
설치하다
1npm install fib-session [--save]
시험
1npm run ci
쿠키 기반 세션 미들웨어 생성
1
2
3
4
5
6
7
8
9
10
11
12
13var Session = require('fib-session')
var session = new Session(conn, opts);
var srv = new http.Server(8000, [
session.cookie_filter, // use session ID via cookie
{
// routers
'^/foo$': (r) => {
var v = r.session.v;
},
...
}
]);
API 세션 미들웨어 만들기
1
2
3
4
5
6
7
8
9
10
11
12
13var Session = require('fib-session')
var session = new Session(conn, opts);
var srv = new http.Server(8000, [
session.api_filter, // use api session filter
{
// routers
'^/foo$': (r) => {
var v = r.session.v;
},
'^/get-token$': session.api_token
}
]);
kv 옵션과 세션 옵션은 모두 동일한 개체에 있습니다.
kv-스토어 옵션
옵션 | 기본 | 객체/지도 | 루캐시 | 레벨DB | 레디스 | 몽고DB | SQLite/MySQL |
---|---|---|---|---|---|---|---|
테이블_이름 | "kvs" | 엑스 | 엑스 | 엑스 | √ | √ | √ |
키_이름 | "케이" | 엑스 | 엑스 | 엑스 | 엑스 | √ | √ |
값_이름 | "V" | 엑스 | 엑스 | 엑스 | 엑스 | √ | √ |
키_크기 | 32 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | √ |
value_size | 256 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | √ |
정리_간격(ms) | 60000 | 엑스 | 엑스 | 엑스 | 엑스 | 엑스 | √ |
시간 초과(ms) | 0 | 엑스 | √ | 엑스 | √ | √ | √ |
접두사 | "" | √ | √ | √ | √ | √ | √ |
은닉처 | 거짓 | √ | √ | √ | √ | √ | √ |
캐시_크기 | 65536 | √ | √ | √ | √ | √ | √ |
캐시 시간 초과(ms) | 60000 | √ | √ | √ | √ | √ | √ |
세션 옵션
옵션 | 기본 | |
---|---|---|
세션_캐시_크기 | 65536 | 캐시의 최대 세션 수 |
session_cache_timeout(ms) | 900000 | 버퍼에서 일정 시간 동안 동작하지 않는 세션 객체를 지웁니다. 기본값은 15분입니다. |
session_cache_delay | 100 | 영구 저장소에 대한 쓰기 세션에 대한 시간 지연 |
세션_ID_이름 | "세션ID" |
- 세션 캐시는 http 요구 사항 간의 세션 일관성을 유지하는 데 사용됩니다.
세션 캐시의 시간 초과는 지연 시간보다 커야 합니다.
클라이언트 측에는 세션 ID만 있고, 세션은 서버 측에서 운영됩니다.
행동 양식
session.setup()
백엔드 데이터베이스를 설정합니다.
v = session.cookie_filter
쿠키 기반 세션 필터를 반환합니다.
session.api_filter
헤더 기반 세션 필터를 반환합니다.
session.api_token
새 세션 ID를 가져오는 API 핸들러를 반환합니다.
JSON 웹 토큰(JWT)
옵션
옵션 | 기본 | |
---|---|---|
session_jwt_algo | 없는 | fib-jws의 jws.ALGORITHMS를 참조하세요. |
session_jwt_key | 없는 | 서명 키. fib-jws에서 확인하세요. |
- fib-jws https://github.com/fibjs/fib-jws 참조
- JWT를 활성화하려면 session_jwt_algo 및 session_jwt_key를 설정하세요.1 2 3// session_jwt_algo is encryption algorithms in fib-jws // session_jwt_key is to verify the signature. var session = new Session(conn, { session_jwt_algo: 'HS256', session_jwt_key: verify_key })
행동 양식
session.setTokenCookie
- 쿠키에 JSON 웹 토큰 설정
- 서명용 sign_key는 알고리즘에 따라 session_jwt_key와 다를 수 있습니다.
- JSON 웹 토큰 사양에 따르면 하나의 사용자 세션은 설정된 사용자 세션 정보에 대해 한 번만 setTokenCookie를 호출할 수 있습니다. 두 번째 세션에서는 다음과 같은 예외가 발생합니다: new Error('Can't edit the JSON Web Token')
- 기본값 r.session={}1 2 3// sign user info: { id: 12345, name: "Frank" }, and set the cookie // r is request session.setTokenCookie(r, { id: 12345, name: "Frank" }, sign_key)
session.getToken
- API 필터 모드에 대한 토큰을 가져옵니다. session.api_filter를 참조하세요.1session.getToken ({ id: 12345, name: "Frank" }, sign_key)