『実践Node.jsプログラミング』(p.175〜)で写経してて、ちょっと面倒だったのでメモ。connectミドルウェアcookie-parserの話です。一つは、connectでcookieParserを使うには、cookie-parserを入れなければならないこと。以前は組込みだったそうですが、現在はミドルウェアを個別にインストールする必要があります。cookie-parser次のようなサンプルがあるのですが、知識不足のため署名付きクッキーの扱いがよくわかりませんでした。cookie-parserとその依存モジュールのソースを読んで、とりあえず以下の方法で動作することを確認しました(他にもあるみたいですが、それは置いときます)。署名付きクッキーはreq.signedCookiesに入ってきます。.listen(3000);サンプルサーバを起動。server.jsサンプルサーバにリクエストするのに先立って、署名を作成します。Node.jsのcryptoモジュールを使用して、sha256ハッシュ、base64エンコードを指定してHMACを生成します(HMAC-SHA256)。createHmac()に渡すシークレット文字列は、サーバでcookieParser()に渡したものを指定します。update()に渡す値は、後でリクエスト時に指定するクッキーの値です。JSONクッキーを扱う場合は、’j:’で始まるJSONオブジェクトの文字列表現自体を値として指定します。beautiful').update('j:{"name":"mayuyu"}').digest('base64'));実行結果をコピペします(末尾の’=’は除きます)。LdouC1l19fzQ233pNKRrKsfQkcaJXDhRg9rpf+r+Jm4=curlで実行確認します。これで、req.signedCookies側に入ってきます。値の前に、’s:’を付記しているのに注意してください。その後に、値と署名をピリオド’.’で挟んだ形で指定します。JSONクッキーの場合は、’j:’で始まるその指定全体を’s:’と’.’署名で挟み込むような形で内包させます。