Cookieの読み書き
document.cookie CookieStore API
Cookieはサーバーとブラウザ間で自動的に送受信される小さなデータです。有効期限の設定や属性による制御が重要です。
デモ:Cookie の読み書き
現在の document.cookie:
(なし)
コード例(手動パース)
js
// ⚠️ document.cookie は古いAPI(文字列操作が必要)
// Cookieの設定
document.cookie = 'name=Alice; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/';
// expires なし → セッションCookie(タブを閉じると消える)
// path=/ → サイト全体で有効
// セキュリティ属性
document.cookie = [
'token=abc123',
'expires=' + new Date(Date.now() + 7*86400000).toUTCString(),
'path=/',
'SameSite=Lax', // CSRF対策(Strict / Lax / None)
// 'HttpOnly', // JS からは設定できない(サーバーのみ)
// 'Secure', // HTTPS のみ(本番環境用)
].join('; ');
// Cookieの取得(パース)
function getCookie(name) {
return document.cookie
.split('; ')
.find(c => c.startsWith(name + '='))
?.split('=')[1] ?? null;
}
getCookie('name'); // "Alice"
// Cookieの削除(過去の日付を設定)
document.cookie = 'name=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
// 全Cookieをオブジェクトに変換
const cookies = Object.fromEntries(
document.cookie.split('; ').map(c => c.split('='))
);重要なCookie属性
| 属性 | 効果 |
|---|---|
| HttpOnly | JSからアクセス不可(XSS対策)。サーバーのみ設定可能 |
| Secure | HTTPS通信時のみ送信 |
| SameSite=Strict | 同一サイトからのリクエストのみ(CSRF対策最強) |
| SameSite=Lax | 通常のナビゲーションのみ(デフォルト・推奨) |
| SameSite=None | クロスサイト送信可(Secure必須) |
NEWCookieStore API(Promise ベースの新しいCookie API)
従来の document.cookie は文字列操作が必要で扱いにくいですが、 CookieStore API はPromiseベースで直感的に操作できます(Chrome 87+)。
js
// ✅ CookieStore API(Chrome 87+)
// 取得
const cookie = await cookieStore.get('name');
console.log(cookie?.value); // "Alice"
// 全Cookie取得
const all = await cookieStore.getAll();
// 設定
await cookieStore.set({
name: 'token',
value: 'abc123',
expires: Date.now() + 7 * 24 * 60 * 60 * 1000,
sameSite: 'lax',
secure: true,
});
// 削除
await cookieStore.delete('name');
// 変更の監視
cookieStore.addEventListener('change', (e) => {
console.log('変更:', e.changed, e.deleted);
});🤖 AIプロンプトテンプレート
以下の要件を満たすTypeScript + Reactコンポーネントを作成してください。 - document.cookieを使ったCookieの読み書き削除のサンプルを示す - CookieのSameSite・Secure・HttpOnly属性の設定例を含める - 有効期限(expires/max-age)を指定したCookie設定のサンプルを含める - 全Cookieを一覧表示・個別削除するUIのサンプルを示す - Cookie Storage APIを使ったモダンなCookie操作の例を含める - コメントは日本語で記述する
⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。