Koajs-cookies
Koa.js-クッキー
Cookieは、サーバー要求でクライアントに送信され、クライアント側に保存される単純な小さなファイル/データです。 ユーザーがWebサイトをロードするたびに、このCookieがリクエストとともに送信されます。 これにより、ユーザーのアクションを追跡できます。 HTTP Cookieには多くの用途があります。
- セッション管理
- パーソナライゼーション(推奨システム)
- ユーザー追跡
KoaでCookieを使用するには、* ctx.cookies.set()および ctx.cookies.get()*という関数があります。 新しいCookieを設定するには、Koaアプリで新しいルートを定義しましょう。
var koa = require('koa');
var router = require('koa-router');
var app = koa();
_.get('/', setACookie);
function *setACookie() {
this.cookies.set('foo', 'bar', {httpOnly: false});
}
var _ = router();
app.use(_.routes());
app.listen(3000);
Cookieが設定されているかどうかを確認するには、ブラウザに移動してコンソールを起動し、入力します-
console.log(document.cookie);
これにより、次の出力が生成されます(ブラウザの拡張機能により、さらに多くのCookieが設定されている場合があります)。
"foo = bar"
上記の例を次に示します。
また、ブラウザーはサーバーに照会するたびにCookieを送り返します。 サーバーのCookieを表示するには、ルートのサーバーコンソールで、そのルートに次のコードを追加します。
console.log('Cookies: foo = ', this.cookies.get('foo'));
次回このルートにリクエストを送信すると、次の出力が表示されます。
Cookies: foo = bar
有効期限付きのCookieの追加
期限切れのCookieを追加できます。 有効期限が切れるCookieを追加するには、プロパティ「expires」が設定されたオブジェクトを有効期限が切れる時刻に渡すだけです。 例えば、
var koa = require('koa');
var router = require('koa-router');
var app = koa();
_.get('/', setACookie);
function *setACookie(){
//Expires after 360000 ms from the time it is set.
this.cookies.set('name', 'value', {
httpOnly: false, expires: 360000 + Date.now() });
}
var _ = router();
app.use(_.routes());
app.listen(3000);
既存のCookieを削除する
Cookieを設定解除するには、Cookieを空の文字列に設定するだけです。 たとえば、 foo という名前のCookieをクリアする必要がある場合は、次のコードを使用します。
var koa = require('koa');
var router = require('koa-router');
var app = koa();
_.get('/', setACookie);
function *setACookie(){
//Expires after 360000 ms from the time it is set.
this.cookies.set('name', '');
}
var _ = router();
app.use(_.routes());
app.listen(3000);
これにより、上記のCookieが設定解除されます。 クライアント側のコードでCookieを使用しない場合は、 HttpOnly オプションをtrueのままにしておく必要があることに注意してください。