Next.js アプリで Cookie の同意を処理する方法

Barbara Streisand
リリース: 2024-10-20 16:38:29
オリジナル
917 人が閲覧しました

How to Handle Cookie Consent in Any Next.js App

今日の Web 開発環境では、一般データ保護規則 (GDPR)カリフォルニア州消費者プライバシー法などのプライバシー規制を満たすために、Cookie の同意を処理することが重要です。法 (CCPA)。 Cookie はユーザーのアクティビティの追跡、コンテンツのパーソナライズ、分析の収集によく使用されますが、多くの管轄区域ではこのデータの収集にはユーザーの同意が必要です。開発者として、コンプライアンスを確保し、透明性のあるユーザー エクスペリエンスを作成するのは私たちの責任です。

この記事では、Next.js アプリケーションで Cookie の同意を処理する方法について説明し、Cookie 同意バナーの作成、ユーザーのアクションに基づいた Cookie の管理、プライバシー法の遵守の確保に焦点を当てます。 .

Cookie の同意が重要なのはなぜですか?

  1. 法的遵守: GDPR および CCPA 規制により、Web サイトはトラッキング Cookie やマーケティング Cookie などの必須ではない Cookie を収集する前に明示的な同意を取得する必要があります。
  2. ユーザーの透明性: Cookie 同意バナーにより、ユーザーはどのような種類のデータが収集されているかがわかり、プライバシーを制御する権限が与えられます。
  3. ユーザー エクスペリエンス: Web サイトがユーザーのプライバシーを尊重し、Cookie の設定を管理する簡単な方法を提供していることを示すことで、信頼性が向上します。

Next.js アプリに Cookie 同意を実装する手順

Next.js アプリケーションに Cookie 同意バナーを追加する手順を見てみましょう。


ステップ 1: Cookie 同意ライブラリをインストールする

Cookie の同意を手動で処理することもできますが、ライブラリを使用するとプロセスが簡単になります。 React/Next.js アプリで Cookie の同意に最もよく使用されるライブラリの 1 つは、react-cookie-consent です。次のコマンドを実行してインストールできます:

npm install react-cookie-consent
# or using Yarn
yarn add react-cookie-consent
ログイン後にコピー
ログイン後にコピー

ステップ 2: Cookie 同意コンポーネントを作成する

ライブラリがインストールされたら、Cookie 同意バナーを表示するコンポーネントを作成します。このバナーは、Cookie の使用についてユーザーに通知し、Cookie を受け入れるか拒否するかを選択するオプションを提供します。

components/CookieConsentBanner.js に新しいコンポーネントを作成します:

npm install react-cookie-consent
# or using Yarn
yarn add react-cookie-consent
ログイン後にコピー
ログイン後にコピー

主な特徴:

  • location: バナーの位置を設定します (この場合は下)。
  • onAccept: ユーザーが Cookie を受け入れたときに何が起こるかのロジックを追加します (たとえば、ここに特定の Cookie を設定できます)。
  • onDecline: ユーザーが Cookie を拒否したときの動作を定義します。
  • enableDeclineButton: ユーザーが専用のボタンを使用して Cookie を拒否できるようにします。
  • cookieName: 同意状態が保存される Cookie の名前。

ステップ 3: Cookie 同意バナーをグローバル レイアウトに追加する

すべてのページに Cookie 同意バナーを表示するには、それをアプリのメイン レイアウトに統合します。通常、これはpages/_app.jsまたはpages/_app.tsxで実行できます。

CookieConsentBanner コンポーネントを含める方法は次のとおりです。

import React from "react";
import CookieConsent from "react-cookie-consent";
import Link from "next/link";

const CookieConsentBanner = () => {
  return (
    <CookieConsent
      location="bottom"
      buttonText="Accept All"
      declineButtonText="Decline"
      enableDeclineButton
      cookieName="yourAppCookieConsent"
      style={{ background: "#2B373B", color: "#FFF" }}
      buttonStyle={{ backgroundColor: "#4CAF50", color: "#FFF", fontSize: "14px" }}
      declineButtonStyle={{ backgroundColor: "#f44336", color: "#FFF", fontSize: "14px" }}
      expires={365}  // Number of days before the cookie expires
      onAccept={() => {
        // Add functionality when user accepts cookies
        console.log("Cookies accepted");
      }}
      onDecline={() => {
        // Add functionality when user declines cookies
        console.log("Cookies declined");
      }}
    >
      This website uses cookies to enhance your experience. By using our website, you consent to the use of cookies. 
      You can read more in our <Link href="/privacy-policy"><a>privacy policy</a></Link>.
    </CookieConsent>
  );
};

export default CookieConsentBanner;
ログイン後にコピー

_app.js に配置すると、Next.js アプリのすべてのページにバナーが表示され、ユーザーがどこに移動しても同意する機会が確保されます。


ステップ 4: プライバシー ポリシー ページを追加する (オプション)

アプリの透明性を高めるには、ユーザーが Cookie の使用方法について詳しく知ることができる、プライバシーまたは Cookie ポリシーへのリンクを提供する必要があります。このリンクは、Cookie 同意バナー (プライバシー ポリシー) に追加されました。

基本的なプライバシー ポリシー ページ (pages/privacy-policy.js) は次のとおりです。

import CookieConsentBanner from "../components/CookieConsentBanner";
import '../styles/globals.css';

function MyApp({ Component, pageProps }) {
  return (
    <>
      {/* Your global layout like header/footer */}
      <Component {...pageProps} />
      {/* Add the Cookie Consent Banner */}
      <CookieConsentBanner />
    </>
  );
}

export default MyApp;
ログイン後にコピー

ステップ 5: テストとデバッグ

すべてが期待どおりに動作することを確認するには、次のことを行う必要があります。

  • さまざまなブラウザでテスト: Cookie 同意バナーがさまざまなブラウザや画面サイズで正しく表示されることを確認します。
  • Cookie ストレージの確認: ユーザーが Cookie を受け入れるか拒否した後、ブラウザの開発者ツールを使用して、保存されている Cookie を検査します。
  • 分析ツールを更新します (必要な場合): ユーザーが Cookie に同意した後にのみ、Google Analytics などの分析ツールや追跡ツールを統合します。 Cookie 同意バナーの onAccept ハンドラー内にトラッキング コードを動的に追加できます。

ステップ 6: Cookie の動作をカスタマイズする

ユーザーの同意に基づいて、さまざまな種類の Cookie (分析、広告など) に特定の動作を設定できます。ユーザーが分析 Cookie を受け入れるときにカスタム Cookie を設定する例を次に示します:

import React from 'react';

const PrivacyPolicy = () => {
  return (
    <div>
      <h1>Privacy Policy</h1>
      <p>This is where you describe how your website collects, uses, and stores data, including cookies.</p>
      {/* Add your privacy and cookie details */}
    </div>
  );
};

export default PrivacyPolicy;
ログイン後にコピー

このアプローチにより、さまざまな Cookie カテゴリを処理し、ユーザーが明示的に同意した後にのみアクティブ化することができます。


結論

Next.js アプリケーションに Cookie 同意バナーを実装すると、ユーザーが自分の個人データを制御できるようにしながら、GDPR や CCPA などのデータ プライバシー法を確実に遵守できます。 React-Cookie-Consent ライブラリを使用するかカスタム ソリューションを使用するかに関係なく、重要なのは、Cookie の使用に関してユーザーに透明性とオプションを提供することです。

要約すると:

  • react-cookie-consent などの Cookie 同意管理ツールをインストールします。
  • ユーザーに通知し、Cookie の受け入れまたは拒否を許可するバナーを作成します。
  • Cookie はユーザーの同意後にのみ設定されるようにしてください。
  • Cookie の使用方法を説明するプライバシー ポリシーへのリンクを提供します。
  • アプリをテストして、ブラウザーやデバイス全体で機能することを確認します。

以上がNext.js アプリで Cookie の同意を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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