يوفر Bun واجهة برمجة تطبيقات مدمجة للعمل مع ملفات تعريف الارتباط في طلبات واستجابات HTTP. يتضمن كائن BunRequest خاصية cookies توفر CookieMap للوصول إلى ملفات تعريف الارتباط والتلاعب بها بسهولة. عند استخدام routes، يتتبع Bun.serve() تلقائيًا request.cookies.set ويطبقها على الاستجابة.
قراءة ملفات تعريف الارتباط
اقرأ ملفات تعريف الارتباط من الطلبات الواردة باستخدام خاصية cookies على كائن BunRequest:
ts
Bun.serve({
routes: {
"/profile": req => {
// الوصول إلى ملفات تعريف الارتباط من الطلب
const userId = req.cookies.get("user_id");
const theme = req.cookies.get("theme") || "light";
return Response.json({
userId,
theme,
message: "Profile page",
});
},
},
});1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
تعيين ملفات تعريف الارتباط
لتعيين ملفات تعريف الارتباط، استخدم طريقة set على CookieMap من كائن BunRequest.
ts
Bun.serve({
routes: {
"/login": req => {
const cookies = req.cookies;
// تعيين ملف تعريف ارتباط مع خيارات مختلفة
cookies.set("user_id", "12345", {
maxAge: 60 * 60 * 24 * 7, // أسبوع واحد
httpOnly: true,
secure: true,
path: "/",
});
// إضافة ملف تعريف ارتباط لتفضيل السمة
cookies.set("theme", "dark");
// يتم تطبيق ملفات تعريف الارتباط المعدلة من الطلب تلقائيًا على الاستجابة
return new Response("Login successful");
},
},
});1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
يتتبع Bun.serve() تلقائيًا ملفات تعريف الارتباط المعدلة من الطلب ويطبقها على الاستجابة.
حذف ملفات تعريف الارتباط
لحذف ملف تعريف ارتباط، استخدم طريقة delete على كائن request.cookies (CookieMap):
ts
Bun.serve({
routes: {
"/logout": req => {
// حذف ملف تعريف ارتباط user_id
req.cookies.delete("user_id", {
path: "/",
});
return new Response("Logged out successfully");
},
},
});1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
تصبح ملفات تعريف الارتباط المحذوفة رأس Set-Cookie على الاستجابة مع maxAge مضبوط على 0 و value فارغ.