CookieParserとは
Node.jsとExpressフレームワークで使用されるミドルウェアで、クライアントから送信されたHTTPリクエストのCookieヘッダーを解析し、JavaScriptオブジェクトとして簡単にアクセスできるようにします。
Cookieを上手いことサーバーサイドで使用できる形に変換できるものです。
使い方
-
以下のコマンドでインストールする。
$ npm install cookie-parser
-
アプリケーションにcookieParserを組み込む。
main.tsimport { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import * as cookieParser from 'cookie-parser'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.use(cookieParser()); await app.listen(3000); } bootstrap();
-
任意のコントローラーでcookieを扱う。
今回は、設定したCookieを返すエンドポイントを作成してみる。import { Controller, Get, Req, Res } from '@nestjs/common'; import { Request, Response } from 'express'; @Controller() export class AppController { @Get() getCookies(@Req() req: Request, @Res() res: Response): string { // クライアントから送信されたクッキーを確認可能 console.log(req.cookies); // クッキーをレスポンスに設定 res.cookie('testCookie', 'testValue'); return res.send('Cookies: ' + JSON.stringify(req.cookies)); } }
オプション一覧
オプション名 | 説明 |
---|---|
secret |
署名付きクッキーの署名を検証するための秘密鍵を指定します。複数の鍵を使用する場合は、配列を指定できます。 |
decode |
クッキーの値をデコードするための関数を指定します。デフォルトではdecodeURIComponent が使用されます。 |
parse |
クッキーの値を自動的にパースするかどうかを指定します。true の場合、クッキーの値がパースされ、false の場合はそのまま文字列として扱われます。 |
key |
リクエストオブジェクトに格納されるクッキーのキー名を指定します。デフォルトではreq.cookies に格納されます。 |
signed |
署名されたクッキーのみを解析するかどうかを指定します。true にすると、署名されていないクッキーは無視されます。 |
httpOnly |
クライアント側のJavaScriptからクッキーにアクセスできないようにします。true に設定するとセキュリティが向上します。 |
maxAge |
クッキーの有効期間をミリ秒単位で指定します。この期間を過ぎるとクッキーは無効になります。 |