expressミドルウェアのcookie-sessionの使用

3157 ワード

これはクッキーベースのセッションミドルウェアです.
ユーザsessionは、cookiesによって、クライアントまたはサーバ側に格納される2つの方法で格納することができる.
  • モジュールは、クッキーを介してセッション値をクライアントに格納する.
  • モジュールはexpress-sessionのようにsession identifierのみをcookieを介してクライアントに格納し、session値をデータベースなどのサーバ側に格納する.

  • 次のいくつかの点で、使用する方法を選択します.
  • cookie-sessionは、すべてのsession値が最大のクライアントcookie数の制限を超えない限り、サーバ側にデータベース/リソースを格納する必要はありません.
  • cookie-sessionは、特定の負荷等化シーンを簡略化することができる.
  • cookie-sessionは、軽量レベルのsesseionを使用して、identifierを含む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()を使用して、セキュリティ、ドメイン名、パス、その他の設定項目を制御します.
    これらのオプションには、次のものが含まれます.
  • 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)を設定できるかどうかを表す
  • req.session


    requestのセッションを表します.
    .isChangedリクエスト中にセッションが変更された場合、値はtrue
    .isNew sessionが新しい場合はtrue
    .isPopulatedは、このセッションが既に存在するか、または空であるかを決定します.

    req.sessionOptions


    現在のリクエストを表すセッション設定項目.

    Destroying a session


    セッションを削除するにはnullに設定するだけです.
    req.session = null