ホームページ > ウェブフロントエンド > jsチュートリアル > クイッククッキー管理のヒント

クイッククッキー管理のヒント

Susan Sarandon
リリース: 2025-01-29 22:36:12
オリジナル
892 人が閲覧しました

Quick Cookie Management Tips

Hey Developers! 私は最近、私のプロジェクトであるe-commerce-smoky-omega.vercel.appでクッキー管理と格闘し、私の学習を共有していると思いました。 クッキーをより賢く動かしましょう!

クッキーとは?

Cookieは、サーバーからユーザーのブラウザに送信される小さなデータパケットです。 ブラウザは、後続のリクエストでこれらをサーバーに保存、作成、変更、および再送信します。 これは、セッション管理、パーソナライズ、追跡に不可欠です

Cookie Essentials

サーバーがユーザーのブラウザに残している小さなノートと考えてください。ユーザーをログインしたり、好みを思い出したりするのに最適です。

サーバー側のCookieセットアップ

この例は、アクセストークン(短期認証)と更新トークン(新しいアクセストークンを取得するため)の2つのCookieの設定を示しています。
<code class="language-javascript">const options = {
    httpOnly: true,
    secure: true,
    sameSite: "none"
};

return res
    .status(200)
    .cookie("accessToken", accessToken, options)
    .cookie("refreshToken", refreshToken, options)
    .json(
        new Apiresponse(
            200,
            { user: loggedInUser },
            "User logged in successfully"
        )
    );</code>
ログイン後にコピー
オブジェクトは、重要なセキュリティパラメーターを構成します:

options

    :クライアント側のJavaScriptアクセスを防ぎ、XSS攻撃を軽減します
  • httpOnly: true:CookieがHTTPSのみを介して送信されるようにします
  • :クロスオリジンリクエストでCookieを許可します(Frontend-Backend Communicationに不可欠)。 私は最初、この設定に苦労しました secure: true
  • クライアント側のクッキーハンドリング
  • sameSite: "none"
  • ログインが成功した後(サーバーはCookieを送信します)、クライアント側の要求で
は、ブラウザがユーザーデータ取得のためにCookieをサーバーに送り返すことを保証します。 シンプルです、

高度なCookieオプション

<code class="language-javascript">const loginResponse = await axios.post(
    `${base_URL}/api/v1/users/signin`,
    { email, password },
    { withCredentials: true }
);

if (loginResponse.data.data) {
    const userResponse = await axios.get(
        `${base_URL}/api/v1/users/getuser`,
        { withCredentials: true } // Automatically sends cookies
    );
}</code>
ログイン後にコピー

withCredentials: true

vs

<code class="language-javascript">const options = {
    expires: new Date(Date.now() + 24 * 60 * 60 * 1000), // Expires in 24 hours
    maxAge: 24 * 60 * 60 * 1000, // Alternative expiry (milliseconds)
    domain: '.example.com',    // All subdomains
    path: '/',                 // Entire domain

};</code>
ログイン後にコピー
両方ではなく1つを使用します。
    (今からのミリ秒)が一般的に推奨されます。
  • expiresmaxAgeセキュリティの影響のために慎重に使用します。 クロスサブドメインアクセスが必要な場合にのみ設定します maxAge
  • domain(最も安全な、クロスサイトのリクエストを制限)、(良いデフォルト)、
  • )。 sameSite strictサーバー側のシークレットキーが必要です lax nonesecure: true
  • 新しいプライバシー機能、普遍的にサポートされていません。
  • signedそれだけです! これが役立つことを願っています。 これは私の最初の記事ですので、フィードバックは大歓迎です!

以上がクイッククッキー管理のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート