Cookie: 複数形の Cookie も使用されることがあります。タイプは「小さなテキスト ファイル」です。これは、ユーザーの身元を特定し、セッション追跡を実行するために、一部の Web サイトによってユーザーのローカル端末に保存されるデータ (通常は暗号化されています) であり、情報はユーザーのクライアント コンピューターによって一時的または永続的に保存されます。
ノードで cookie を操作するには、 cookie-parser
モジュール
npm i cookie-parser -s が必要です。
次に、このモジュールをファイルに導入します。
//express モジュールを導入します const Express = require('express') // エクスプレスをインスタンス化します const app = Express() // Cookie モジュールの操作 const cookieParser = require('cookie-parser'); //Cookie 署名を追加します app.use(cookieParser('Really outrageous')); //Cookie ミドルウェアを使用します。暗号化された値は次のとおりです: 'Really outrageous'
パラメータ詳細
name: Cookie を一意に識別する名前。
value: Cookie に保存されている文字列の値。
ドメイン: Cookie はそのドメインに対して有効です。
path: この Cookie の影響を受けるパスを示します。ブラウザは、この設定に基づいて、指定されたドメイン内の一致するパスに Cookie を送信します。
expires: Cookie の有効期限が切れる時刻を示します。この時刻が設定されていない場合、ブラウザはページを閉じるときにすべての Cookie を削除しますが、有効期限を自分で設定することもできます。
注: クライアントとサーバーに設定された時間が一致しない場合、有効期限を使用するときにずれが生じます。
max-age: この Cookie の有効期限をブラウザに伝えるために使用されます (秒単位)。一般に、max-age は、expires よりも優先されます。
HttpOnly: スクリプト document.cookie による値の変更を許可しないようにブラウザーに指示します。この値も document.cookie には表示されませんが、この Cookie は http リクエストに含まれます。
注: この値はスクリプトでは推奨されませんが、ブラウザのインストール ディレクトリにファイルの形式で存在します。この設定は通常、サーバー側で設定されます。
secure: セキュリティ フラグ。secure が true の場合、HTTP では無効であり、HTTPS 接続でのセッション検証のためにブラウザからのみ有効であることを意味します。 HTTP 接続ではこの情報が渡されないため、通常は聞こえません。
読み取りの問題に関しては、
req.cookies: 暗号化されていない Cookie を読み取り、
req.signedCookies: 暗号化された Cookie を読み取ります。
Case
app.get('/', (req, res) => { res.cookie('cart', { items: [1, 2, 3] }, { maxAge: 10000 * 2, httpOnly: true, signed: true, path: '/' }); res.cookie('user', 'Zhang San', { httpOnly: true, path: '/user', signed: true }) res.send('ok') console.log(req.cookies) console.log(req.signedCookies) })
app.get('/user', (req, res) => { console.log(req.cookies) res.send(req.signedCookies) })
app.get('/news', function (req, res) { res.cookie('年齢', 'ダバイ', { maxAge: 10000 * 2, httpOnly: true, signed: true }) res.cookie('Age', '0', { maxAge: 0 }); res.send('こんにちは、nodejs ニュース') })
maxAge
が0
の場合、 cookie
削除されます。