LoginSignup
0
0

雑にCookieParserとは?

Posted at

CookieParserとは

Node.jsとExpressフレームワークで使用されるミドルウェアで、クライアントから送信されたHTTPリクエストのCookieヘッダーを解析し、JavaScriptオブジェクトとして簡単にアクセスできるようにします。
Cookieを上手いことサーバーサイドで使用できる形に変換できるものです。

使い方

  1. 以下のコマンドでインストールする。

    $ npm install cookie-parser
    
  2. アプリケーションにcookieParserを組み込む。

    main.ts
    import { 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();
    
  3. 任意のコントローラーで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 クッキーの有効期間をミリ秒単位で指定します。この期間を過ぎるとクッキーは無効になります。

参考

NestJSでCookieを利用する
cookie-parser - npm

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0