cookies ใน Next.js

การจัดการ cookies ใน Next.js สามารถทำได้โดยใช้แพ็กเกจ cookie หรือแพ็กเกจอื่นๆ ที่ใช้งานได้กับ JavaScript หรือ Node.js เพื่อสร้างและอ่านค่า cookies ตามความต้องการของคุณ นี่คือขั้นตอนการใช้ cookies ใน Next.js:

  1. ติดตั้งแพ็กเกจ cookie:
    ใช้ npm หรือ yarn เพื่อติดตั้งแพ็กเกจ cookie:

    ใช้ npm:

    1
    npm install cookie

    หรือใช้ yarn:

    1
    yarn add cookie
  2. สร้างและเข้าถึงค่า cookies:
    ในไฟล์ของคุณที่ใช้ Next.js คุณสามารถสร้างและเข้าถึงค่า cookies ได้ดังนี้:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // ตัวอย่างการสร้างค่า cookie
    import { serialize, parse } from 'cookie';

    // สร้างค่า cookie
    const setCookie = (res, name, value) => {
    const cookie = serialize(name, value, {
    sameSite: 'strict', // แนะนำตั้งค่าเป็น 'strict' เพื่อความปลอดภัย
    path: '/', // ค่าเริ่มต้น
    maxAge: 60 * 60 * 24 * 7, // 7 วัน
    });

    res.setHeader('Set-Cookie', cookie);
    };

    // ตัวอย่างการอ่านค่า cookie
    const getCookie = (req, name) => {
    const cookies = parse(req.headers.cookie || '');
    return cookies[name] || null;
    };

    ในตัวอย่างนี้เราใช้ serialize และ parse จากแพ็กเกจ cookie เพื่อสร้างและอ่านค่า cookies ตามลำดับ. เราใช้ Set-Cookie header เพื่อสร้างค่า cookies ในการตอบสนอง (response) ของเซิร์ฟเวอร์.

  3. ใช้ cookies ในหน้า Next.js:
    คุณสามารถใช้ cookies ในหน้า Next.js ได้ตามปกติ ตัวอย่างการอ่านค่า cookie ในหน้า Next.js:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    // pages/somepage.js
    import { getCookie } from '../path-to-cookie-functions';

    function SomePage({ cookieValue }) {
    return (
    <div>
    <p>Cookie Value: {cookieValue}</p>
    </div>
    );
    }

    export async function getServerSideProps(context) {
    // อ่านค่า cookie จาก request
    const cookieValue = getCookie(context.req, 'myCookieName');

    return {
    props: {
    cookieValue,
    },
    };
    }

    export default SomePage;

    ในตัวอย่างนี้เราใช้ getServerSideProps ในหน้า Next.js เพื่ออ่านค่า cookie จาก request และส่งค่านี้ไปยังหน้า SomePage เป็น props เพื่อแสดงผล.

  4. อัปเดตและลบค่า cookies:
    คุณสามารถอัปเดตและลบค่า cookies โดยใช้ฟังก์ชันที่เหมาะสมตามต้องการ ตัวอย่างการอัปเดตค่า cookie:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // ตัวอย่างการอัปเดตค่า cookie
    const updateCookie = (res, name, value) => {
    const cookie = serialize(name, value, {
    sameSite: 'strict',
    path: '/',
    maxAge: 60 * 60 * 24 * 7,
    });

    res.setHeader('Set-Cookie', cookie);
    };

    ตัวอย่างการลบค่า cookie:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // ตัวอย่างการลบค่า cookie
    const deleteCookie = (res, name) => {
    const cookie = serialize(name, '', {
    sameSite: 'strict',
    path: '/',
    maxAge: 0, // ตั้งค่า maxAge เป็น 0 เพื่อลบค่า cookie
    });

    res.setHeader('Set-Cookie', cookie);
    };

    คุณสามารถใช้ updateCookie และ deleteCookie เพื่ออัปเดตและลบค่า cookies ตามต้องการในหน้า Next.js ของคุณ.

นี่คือขั้นตอนพื้นฐานในการจัดการ cookies ใน Next.js คุณสามารถปรับแต่งการใช้งาน cookies ตามความต้องการของโปรเจ็กต์ของคุณได้ตามชอบ.