cookie-paeserミドルウェアの紹介
cookie-parser は Express のクッキー解析用ミドルウェアです。クッキーの値でクライアントの操作を容易にするためです。クッキーに格納されている情報のサーバ側に相当し、その後、クライアントは値を取得するためにクッキーを介して取得することができます。例えば、クッキーは一般的にユーザーのログイン情報を記録するために使用されます。
express-sessionミドルウェアの紹介
上記のクライアントは、クッキーの値を取得することができ、その後、サーバーは、セッションを介していると述べた。セッションは、ユーザーの状態情報技術を記録するサーバーは、クライアントが最初にサーバーを要求するとき、サーバーは、セッションオブジェクトと呼ばれるクライアントのための一意のオブジェクトを作成します。つまり、セッションのクッキーを保存するプロセスです。
Expressでクッキー・パーサーを使う方法
クッキー・パーサーをインストール
//
npm i cookie-parser --save
アプリ内.js
//app.jsドキュメント、ミドルウェアの紹介
var cookieParser = require('cookie-parser')
//ミドルウェアを設定する
app.use(cookieParser());
クッキーを設定する方法
設定を行うのはresであることに注意してください。
//クッキーを設定する
res.cookies('key','value',option);
name=value:キーと値のペアで、保存するキーと値を設定します。
expires: 有効期限、クッキーは一定時間後に失効します、例えば expires=Wednesday,09-Nov-99 23:12:40 GMT
maxAge: 最大有効期限、何時間後に失効するかを設定します。
secure: secure が true の場合、クッキーは HTTP では無効で HTTPS では有効です。
path: クッキーが影響するルートを示します。pathが一致しない場合、ブラウザはクッキーを送信しません。
httpOnly: は COOKIE の Microsoft 拡張です。COOKIEに "httpOnly "属性が設定されている場合、アプリケーションはCOOKIEの情報を読み込まず、XSS攻撃を防ぎます。
signed: クッキーが署名されているかどうかを示します。true に設定するとクッキーが署名されるので、res.signedCookies を使ってアクセスする必要があります。もしクッキーが署名されていなければ、res.cookies によってアクセスされます。
クッキーを削除する方法
//クッキーを削除する
res.cookie('username', 'tanakasan', { maxAge:0 });
クッキーを暗号化する方法
ミドルウェアの設定時にパラメータを渡します。
app.use(cookieParser('123456'));
set属性に="signed:true "属性を追加します。
res.cookie('username',name, {maxAge:1000 * 60 * 60 * 24 * 7,signed:true}); //クッキーの保存期間を設定する。
クッキーを取得する方法
暗号化されていないクッキーを取得するための設定を行うのはreqであることに注意してください。
req.cookies.XXXX
req.cookies.username
暗号化されたクッキーを取得
req.signedCookies.XXXX
req.signedCookies.username
Expressでのexpress-sessionの使い方。
express-sessionのインストール
//
npm i express-session --save
アプリでセッションを作成する方法.jsexpress-sessionの設定
導入後に設定を行います:
let session = require("express-session");
app.use(session({
secret: '123456',
resave: false,
saveUninitialized: true
}));
セッションのパラメータは以下の通りです: name: セッションが保存されるクッキーのフィールド名を設定します。store:セッションの保存方法。デフォルトはメモリ内ですが、redisやmongodbなどを使うこともできます。secret: 署名されたCookieを改ざんできないようにするために、ハッシュ値を計算してCookieに入れるための秘密の文字列を設定します。cookie:セッションIDを保持するクッキーのオプションを設定します。genid:新しいセッションIDを生成するときに使用する関数です。resave: セッションが変更されていなくてもセッションの値を保存します。
セッションのシード方法
req.session.XXX=VALUE
//
req.session.auth_username=name
セッションの取得方法
req.session.XXX
req.session.auth_username
破壊セッションの削除方法
req.session.XXX=undefined;
req.session.auth_password=undefined;
これら2つのミドルウェアをExpressフレームワークで使用した結果、ブラウザの結果は以下のようになりました:





