Cookie
ヘッダーを解析し、クッキー名でキー付けされたオブジェクトで req.cookies
を設定します。オプションで、secret
文字列を渡すことで署名付きクッキーのサポートを有効にできます。これにより、req.secret
が割り当てられ、他のミドルウェアで使用できるようになります。
$ npm install cookie-parser
var cookieParser = require('cookie-parser')
指定された secret
と options
を使用して、新しいクッキーパーサーミドルウェア関数を作成します。
secret
クッキーへの署名に使用される文字列または配列。これはオプションであり、指定しない場合は、署名付きクッキーを解析しません。文字列が指定された場合、これはシークレットとして使用されます。配列が指定された場合、順番に各シークレットを使用してクッキーの署名解除が試行されます。options
2番目のオプションとして cookie.parse
に渡されるオブジェクト。詳細については、cookie を参照してください。decode
クッキーの値をデコードする関数ミドルウェアはリクエストの Cookie
ヘッダーを解析し、クッキーデータをプロパティ req.cookies
として、secret
が指定された場合はプロパティ req.signedCookies
として公開します。これらのプロパティは、クッキー名からクッキー値への名前と値のペアです。
secret
が指定されている場合、このモジュールは署名されたクッキー値を署名解除して検証し、それらの名前と値のペアを req.cookies
から req.signedCookies
に移動します。署名されたクッキーは、値の先頭に s:
が付いたクッキーです。署名検証に失敗した署名付きクッキーの値は、改ざんされた値ではなく false
になります。
さらに、このモジュールは特別な「JSON クッキー」をサポートしています。これらは、値の先頭に j:
が付いたクッキーです。これらの値が検出されると、値は JSON.parse
の結果として公開されます。解析に失敗した場合、元の値が残ります。
クッキー値を JSON クッキーとして解析します。これが JSON クッキーだった場合は、解析された JSON 値を返します。それ以外の場合は、渡された値を返します。
オブジェクトが与えられた場合、これはキーを反復処理し、各値に対して JSONCookie
を呼び出し、元の値を解析された値で置き換えます。これは、渡されたものと同じオブジェクトを返します。
クッキー値を署名付きクッキーとして解析します。これが署名付きクッキーであり、署名が有効であった場合は、解析された署名なしの値を返します。値が署名されていない場合は、元の値が返されます。値が署名されているが、署名を検証できなかった場合は、false
が返されます。
secret
引数は、配列または文字列にできます。文字列が指定された場合、これはシークレットとして使用されます。配列が指定された場合、順番に各シークレットを使用してクッキーの署名解除が試行されます。
オブジェクトが与えられた場合、これはキーを反復処理し、値が署名付きクッキーかどうかを確認します。署名付きクッキーであり、署名が有効な場合は、キーがオブジェクトから削除され、返される新しいオブジェクトに追加されます。
secret
引数は、配列または文字列にできます。文字列が指定された場合、これはシークレットとして使用されます。配列が指定された場合、順番に各シークレットを使用してクッキーの署名解除が試行されます。
var express = require('express')
var cookieParser = require('cookie-parser')
var app = express()
app.use(cookieParser())
app.get('/', function (req, res) {
// Cookies that have not been signed
console.log('Cookies: ', req.cookies)
// Cookies that have been signed
console.log('Signed Cookies: ', req.signedCookies)
})
app.listen(8080)
// curl command that sends an HTTP request with two cookies
// curl http://127.0.0.1:8080 --cookie "Cho=Kim;Greet=Hello"