フィブセッション
fibjs 用のセッションミドルウェア
インストール
1npm install fib-session [--save]
テスト
1npm run ci
Cookieベースのセッションミドルウェアの作成
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 オプションと session オプションは両方とも同じオブジェクト内にあります。
kv-store オプション
オプション | デフォルト | オブジェクト/マップ | Lruキャッシュ | レベルDB | レディス | モンゴDB | SQLite/MySQL |
---|---|---|---|---|---|---|---|
テーブル名 | 「kvs」 | バツ | バツ | バツ | √ | √ | √ |
キー名 | 「き」 | バツ | バツ | バツ | バツ | √ | √ |
値の名前 | 「v」 | バツ | バツ | バツ | バツ | √ | √ |
キーのサイズ | 32 | バツ | バツ | バツ | バツ | バツ | √ |
値のサイズ | 256 | バツ | バツ | バツ | バツ | バツ | √ |
クリーンアップ間隔(ミリ秒) | 60000 | バツ | バツ | バツ | バツ | バツ | √ |
タイムアウト(ミリ秒) | 0 | バツ | √ | バツ | √ | √ | √ |
接頭辞 | 「」 | √ | √ | √ | √ | √ | √ |
キャッシュ | 間違い | √ | √ | √ | √ | √ | √ |
キャッシュサイズ | 65536 | √ | √ | √ | √ | √ | √ |
キャッシュタイムアウト(ミリ秒) | 60000 | √ | √ | √ | √ | √ | √ |
セッションオプション
オプション | デフォルト | |
---|---|---|
セッションキャッシュサイズ | 65536 | キャッシュ内のセッションの最大数 |
セッションキャッシュタイムアウト(ミリ秒) | 900000 | 一定期間操作されなかったセッション オブジェクトをバッファからクリアします (デフォルトは 15 分) |
セッションキャッシュ遅延 | 100 | 永続ストレージへの書き込みセッションの遅延時間 |
セッションID名 | "セッションID" |
- セッション キャッシュは、http 要求間でセッションの一貫性を維持するために使用されます。
セッションキャッシュのタイムアウトは遅延より大きくなければなりません
クライアント側はセッションIDのみを持ち、セッションはサーバー側で操作されます。
メソッド
session.setup()
バックエンドデータベースをセットアップします。
v = session.cookie_filter
Cookie ベースのセッション フィルターを返します。
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
- session_jwt_algo と session_jwt_key を設定して JWT を有効にします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
- CookieにJSON Webトークンを設定します
- 署名用のsign_keyは、アルゴリズムによってはsession_jwt_keyとは異なる場合があります。
- JSON Web トークンの仕様によると、1 つのユーザー セッションは、ユーザー セッション情報を設定するために setTokenCookie を 1 回だけ呼び出すことができます。2 回目では例外がスローされます: new Error('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)