expressミドルウェアのcookie-sessionの使用
3157 ワード
これはクッキーベースのセッションミドルウェアです.
ユーザsessionは、cookiesによって、クライアントまたはサーバ側に格納される2つの方法で格納することができる.モジュールは、クッキーを介してセッション値をクライアントに格納する. モジュールはexpress-sessionのようにsession identifierのみをcookieを介してクライアントに格納し、session値をデータベースなどのサーバ側に格納する.
次のいくつかの点で、使用する方法を選択します. cookie-sessionは、すべてのsession値が最大のクライアントcookie数の制限を超えない限り、サーバ側にデータベース/リソースを格納する必要はありません. cookie-sessionは、特定の負荷等化シーンを簡略化することができる. cookie-sessionは、軽量レベルのsesseionを使用して、identifierを含む2次ストレージをクエリーし、データベースのクエリー回数を減らすことができます.
指定したオプションを使用して、新しいクッキーセッションミドルウェアを作成します.このミドルウェアはreqにsessionプロパティを添付し、sessionプロパティはロードされたsessionを表すオブジェクトを提供します.このセッションは、requestに有効なセッションが提供されていない場合、またはrequestにロードされているセッションである場合、新しいセッションであってもよい.
このミドルウェアはreq.セッションの内容が修正されたら.
Cookie sessionはoptionsオブジェクトで次の属性を受け入れます.
name
クッキーの名前を設定します.デフォルトはセッションです.
keys
クッキー値を暗号化および復号するための鍵のリスト.cookiesは常にkeys[0]を使用して暗号化され、他のkeysは復号化に使用されます.
secret
keysが提供していない場合、secretは文字列であり、単一の鍵として使用されます.
Cookie Options
他のoptionsはcookiesを通過することができる.get()とcookies.set()を使用して、セキュリティ、ドメイン名、パス、その他の設定項目を制御します.
これらのオプションには、次のものが含まれます. maxAge:ミリ秒単位で、現在から期限切れの数を表します. expires:クッキーが無効になった日付を表す日付オブジェクト.(通常expiresはセッションの最後のオプション) path:クッキーパスを表す文字列. domain:クッキードメイン名を表すオプション(デフォルトではありません) sameSite:boolean値または文字列は、cookieが同じWebサイトのcookieであるかどうかを表します(デフォルトfalse).このオプションは、「strict」、「lax」または「true」(「strict」にマッピングされる)に設定できます. secure:boolean値は、このcokkieがhttps上でしか伝送できないかどうかを示す(デフォルトはfalse) httpOnly:boolean値は、cookieがHTTP(S)上でしか伝送できないか、javascriptで伝送できないかを表します. signed:boolean値は、このクッキーが暗号化できるかどうかを表します.(デフォルトはtrue) overwrite:boolean値は、同じnameのクッキーの値(デフォルトはtrue)を設定できるかどうかを表す
requestのセッションを表します.
.isChangedリクエスト中にセッションが変更された場合、値はtrue
.isNew sessionが新しい場合はtrue
.isPopulatedは、このセッションが既に存在するか、または空であるかを決定します.
現在のリクエストを表すセッション設定項目.
セッションを削除するにはnullに設定するだけです.
ユーザsessionは、cookiesによって、クライアントまたはサーバ側に格納される2つの方法で格納することができる.
次のいくつかの点で、使用する方法を選択します.
API
var cookieSession = require('cookie-session');
var express = require('express');
var app = express();
app.use(cookieSession({
name: 'session',
keys: [/*secret keys*/],
//Cookie Options
maxAge: 24*60*60*1000; //24hours
}))
cookieSession(options)
指定したオプションを使用して、新しいクッキーセッションミドルウェアを作成します.このミドルウェアはreqにsessionプロパティを添付し、sessionプロパティはロードされたsessionを表すオブジェクトを提供します.このセッションは、requestに有効なセッションが提供されていない場合、またはrequestにロードされているセッションである場合、新しいセッションであってもよい.
このミドルウェアはreq.セッションの内容が修正されたら.
Options
Cookie sessionはoptionsオブジェクトで次の属性を受け入れます.
name
クッキーの名前を設定します.デフォルトはセッションです.
keys
クッキー値を暗号化および復号するための鍵のリスト.cookiesは常にkeys[0]を使用して暗号化され、他のkeysは復号化に使用されます.
secret
keysが提供していない場合、secretは文字列であり、単一の鍵として使用されます.
Cookie Options
他のoptionsはcookiesを通過することができる.get()とcookies.set()を使用して、セキュリティ、ドメイン名、パス、その他の設定項目を制御します.
これらのオプションには、次のものが含まれます.
req.session
requestのセッションを表します.
.isChangedリクエスト中にセッションが変更された場合、値はtrue
.isNew sessionが新しい場合はtrue
.isPopulatedは、このセッションが既に存在するか、または空であるかを決定します.
req.sessionOptions
現在のリクエストを表すセッション設定項目.
Destroying a session
セッションを削除するにはnullに設定するだけです.
req.session = null