การจัดการ cookies ใน Next.js สามารถทำได้โดยใช้แพ็กเกจ cookie
หรือแพ็กเกจอื่นๆ ที่ใช้งานได้กับ JavaScript หรือ Node.js เพื่อสร้างและอ่านค่า cookies ตามความต้องการของคุณ นี่คือขั้นตอนการใช้ cookies ใน Next.js:
ติดตั้งแพ็กเกจ
cookie
:
ใช้ npm หรือ yarn เพื่อติดตั้งแพ็กเกจcookie
:ใช้ npm:
1
npm install cookie
หรือใช้ yarn:
1
yarn add cookie
สร้างและเข้าถึงค่า 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) ของเซิร์ฟเวอร์.ใช้ 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 เพื่อแสดงผล.อัปเดตและลบค่า 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 ตามความต้องการของโปรเจ็กต์ของคุณได้ตามชอบ.