คำอธิบาย
ใช้ chrome.cookies
API เพื่อค้นหาและแก้ไขคุกกี้ และรับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลง
สิทธิ์
cookies
หากต้องการใช้ API คุกกี้ ให้ประกาศสิทธิ์ "cookies"
ใน
ไฟล์ Manifest พร้อมด้วยสิทธิ์ของโฮสต์สำหรับโฮสต์ที่คุณต้องการใช้คุกกี้
เพื่อเข้าถึง เช่น
{
"name": "My extension",
...
"host_permissions": [
"*://*.google.com/"
],
"permissions": [
"cookies"
],
...
}
การแบ่งพาร์ติชัน
คุกกี้ที่แบ่งพาร์ติชันแล้วช่วยให้เว็บไซต์ทําเครื่องหมายว่าคุกกี้บางรายการควรเชื่อมโยงกับ ของเฟรมระดับบนสุด ซึ่งหมายความว่า ตัวอย่างเช่น หากเว็บไซต์ A ถูกฝังโดยใช้ iframe ในเว็บไซต์ B กับเว็บไซต์ C ส่วนเวอร์ชันที่ฝังของคุกกี้ที่ได้รับการแบ่งพาร์ติชันจาก A อาจมีค่าที่แตกต่างกันใน B และ C
โดยค่าเริ่มต้น เมธอด API ทั้งหมดจะทำงานกับคุกกี้ที่ไม่ได้แบ่งพาร์ติชัน
คุณใช้พร็อพเพอร์ตี้ partitionKey
เพื่อลบล้างลักษณะการทำงานนี้ได้
สำหรับรายละเอียดเกี่ยวกับผลกระทบโดยทั่วไปของการแบ่งพาร์ติชันสำหรับส่วนขยาย โปรดดู พื้นที่เก็บข้อมูลและคุกกี้
ตัวอย่าง
คุณสามารถดูตัวอย่างง่ายๆ ของการใช้ API คุกกี้ใน examples/api/cookies สำหรับตัวอย่างอื่นๆ และสำหรับความช่วยเหลือในการดู ซอร์สโค้ด โปรดดูตัวอย่าง
ประเภท
Cookie
แสดงข้อมูลเกี่ยวกับคุกกี้ HTTP
พร็อพเพอร์ตี้
-
โดเมน
สตริง
โดเมนของคุกกี้ (เช่น "www.google.com", "example.com")
-
expirationDate
หมายเลข ไม่บังคับ
วันที่หมดอายุของคุกกี้เป็นจำนวนวินาทีนับตั้งแต่ UNIX Epoch ไม่ได้ระบุสำหรับคุกกี้ของเซสชัน
-
hostOnly
boolean
เป็นจริงหากคุกกี้เป็นคุกกี้เฉพาะโฮสต์ (เช่น โฮสต์ของคำขอต้องตรงกับโดเมนของคุกกี้ทุกประการ)
-
httpOnly
boolean
เป็นจริงหากมีการทำเครื่องหมายคุกกี้เป็น HttpOnly (กล่าวคือ คุกกี้ไม่สามารถเข้าถึงได้จากสคริปต์ฝั่งไคลเอ็นต์)
-
ชื่อ
สตริง
ชื่อของคุกกี้
-
partitionKey
CookiePartitionKey ไม่บังคับ
Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับอ่านหรือแก้ไขคุกกี้ด้วยแอตทริบิวต์ที่มีการแบ่งพาร์ติชัน
-
เส้นทาง
สตริง
เส้นทางของคุกกี้
-
sameSiteChrome 51 ขึ้นไป
สถานะเว็บไซต์เดียวกันของคุกกี้ (เช่น คุกกี้ถูกส่งพร้อมกับคำขอข้ามเว็บไซต์หรือไม่)
-
รักษาความปลอดภัย
boolean
เป็นจริงหากมีการทำเครื่องหมายคุกกี้ว่าปลอดภัย (นั่นคือ ขอบเขตของคุกกี้นั้นจำกัดไว้เฉพาะช่องทางที่ปลอดภัย ซึ่งมักจะเป็น HTTPS)
-
เซสชัน
boolean
เป็นจริงหากคุกกี้เป็นคุกกี้เซสชัน ไม่ใช่คุกกี้ถาวรที่มีวันที่หมดอายุ
-
storeId
สตริง
รหัสของที่เก็บคุกกี้ที่มีคุกกี้นี้ ซึ่งระบุไว้ใน getAllCookieStores()
-
value
สตริง
ค่าของคุกกี้
CookieDetails
รายละเอียดที่จะระบุคุกกี้
พร็อพเพอร์ตี้
-
ชื่อ
สตริง
ชื่อของคุกกี้ที่จะเข้าถึง
-
partitionKey
CookiePartitionKey ไม่บังคับ
Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับอ่านหรือแก้ไขคุกกี้ด้วยแอตทริบิวต์ที่มีการแบ่งพาร์ติชัน
-
storeId
string ไม่บังคับ
รหัสของที่เก็บคุกกี้ที่จะค้นหาคุกกี้ โดยค่าเริ่มต้น ระบบจะใช้ที่เก็บคุกกี้ของบริบทการดำเนินการปัจจุบัน
-
URL
สตริง
URL ที่คุกกี้จะเข้าถึงมีการเชื่อมโยงกัน อาร์กิวเมนต์นี้อาจเป็น URL แบบเต็ม ซึ่งในกรณีนี้ข้อมูลใดๆ ที่อยู่หลังเส้นทาง URL (เช่น สตริงการค้นหา) จะถูกละเว้น หากไม่มีการระบุสิทธิ์ของโฮสต์สำหรับ URL นี้ในไฟล์ Manifest การเรียก API จะล้มเหลว
CookiePartitionKey
แสดงคีย์พาร์ติชันของคุกกี้ที่แบ่งพาร์ติชัน
พร็อพเพอร์ตี้
-
hasCrossSiteAncestor
บูลีน ไม่บังคับ
รอดำเนินการระบุว่ามีการตั้งค่าคุกกี้ในบริบทแบบข้ามเว็บไซต์หรือไม่ วิธีนี้ช่วยป้องกันไม่ให้เว็บไซต์ระดับบนสุดที่ฝังอยู่ในบริบทแบบข้ามเว็บไซต์เข้าถึงคุกกี้ที่เว็บไซต์ระดับบนสุดตั้งค่าไว้ในบริบทของเว็บไซต์เดียวกัน
-
topLevelSite
string ไม่บังคับ
เว็บไซต์ระดับบนสุดที่มีคุกกี้ที่แบ่งพาร์ติชันแล้ว
CookieStore
แสดงการจัดเก็บคุกกี้ในเบราว์เซอร์ ตัวอย่างเช่น หน้าต่างโหมดไม่ระบุตัวตนจะใช้ที่เก็บคุกกี้แยกต่างหากจากหน้าต่างที่ไม่ใช่หน้าต่างที่ไม่ระบุตัวตน
พร็อพเพอร์ตี้
-
id
สตริง
ตัวระบุที่ไม่ซ้ำกันสำหรับที่เก็บคุกกี้
-
tabIds
ตัวเลข[]
ตัวระบุแท็บเบราว์เซอร์ทั้งหมดที่แชร์การจัดเก็บคุกกี้นี้
OnChangedCause
เหตุผลที่ทําให้คุกกี้มีการเปลี่ยนแปลง หากมีการแทรกหรือใช้คุกกี้ผ่านการเรียก "chrome.cookies.remove", "สาเหตุ" อย่างชัดเจน จะ "โจ่งแจ้ง อาจไม่เหมาะสม" หากคุกกี้ถูกนำออกโดยอัตโนมัติเนื่องจากหมดอายุ "สาเหตุ" จะ "หมดอายุ" หากคุกกี้ถูกนำออกเนื่องจากมีการเขียนทับด้วยวันที่หมดอายุที่หมดอายุไปแล้ว "สาเหตุ" จะถูกตั้งค่าเป็น "expired_overwrite" หากคุกกี้ถูกนำออกโดยอัตโนมัติเนื่องจากมีการเก็บขยะ "สาเหตุ" จะถูก "ขับออก" ในกรณีที่คุกกี้ถูกนำออกโดยอัตโนมัติเนื่องจาก "ชุด" การเรียกนั้นมาแทนที่สิ่งนั้น "สาเหตุ" จะถูก "เขียนทับ" โปรดวางแผนการตอบกลับตามความเหมาะสม
ค่าแจกแจง
SameSiteStatus
"SameSite" ของคุกกี้ (https://tools.ietf.org/html/draft-west-first-party-cookies) "no_restriction" ตรงกับชุดคุกกี้ที่มี "SameSite=None", "lax" เป็น "SameSite=Lax" และ "strict" เป็น "SameSite=Strict" "ไม่ระบุ" ตรงกับชุดคุกกี้ที่ไม่มีแอตทริบิวต์ SameSite
ค่าแจกแจง
เมธอด
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
)
เรียกคืนข้อมูลเกี่ยวกับคุกกี้เดียว หากมีคุกกี้ที่มีชื่อเดียวกันมากกว่า 1 ตัวสำหรับ URL ที่ระบุ ระบบจะแสดงผลคุกกี้ที่มีเส้นทางยาวที่สุด สำหรับคุกกี้ที่มีความยาวเส้นทางเท่ากัน ระบบจะแสดงผลคุกกี้ที่มีเวลาที่สร้างเร็วที่สุด
พารามิเตอร์
การคืนสินค้า
-
Promise<Cookie | ไม่ระบุ>
Chrome เวอร์ชัน 88 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
)
เรียกคุกกี้ทั้งหมดจากที่เก็บคุกกี้หนึ่งที่ที่ตรงกับข้อมูลที่ระบุ คุกกี้ที่แสดงผลจะได้รับการจัดเรียงตามเส้นทางที่ยาวที่สุดก่อน หากคุกกี้หลายรายการมีความยาวเส้นทางเท่ากัน คุกกี้ที่มีเวลาสร้างเร็วที่สุดจะเป็นรายการแรก วิธีนี้จะเรียกคุกกี้เฉพาะสำหรับโดเมนที่ส่วนขยายมีสิทธิ์ของโฮสต์เท่านั้น
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
ข้อมูลเพื่อกรองคุกกี้ที่ดึงมา
-
โดเมน
string ไม่บังคับ
จำกัดคุกกี้ที่เรียกมาเฉพาะผู้ที่มีโดเมนตรงกันหรือเป็นโดเมนย่อยของคุกกี้นี้
-
ชื่อ
string ไม่บังคับ
กรองคุกกี้ตามชื่อ
-
partitionKey
CookiePartitionKey ไม่บังคับ
Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับอ่านหรือแก้ไขคุกกี้ด้วยแอตทริบิวต์ที่มีการแบ่งพาร์ติชัน
-
เส้นทาง
string ไม่บังคับ
จำกัดคุกกี้ที่เรียกมาต้องเป็นคุกกี้ที่มีเส้นทางตรงกับสตริงนี้ทุกประการ
-
รักษาความปลอดภัย
บูลีน ไม่บังคับ
กรองคุกกี้ตามพร็อพเพอร์ตี้ที่ปลอดภัย
-
เซสชัน
บูลีน ไม่บังคับ
กรองเซสชันและคุกกี้ถาวรออก
-
storeId
string ไม่บังคับ
คุกกี้สตอเรจที่จะดึงข้อมูลคุกกี้ หากไม่ระบุ ระบบจะใช้ที่เก็บคุกกี้ของบริบทการดำเนินการปัจจุบัน
-
URL
string ไม่บังคับ
จำกัดคุกกี้ที่เรียกมาเฉพาะคุกกี้ที่ตรงกับ URL ที่ระบุ
-
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
จะมีลักษณะดังนี้(cookies: Cookie[]) => void
-
คุกกี้
คุกกี้[]
คุกกี้ที่มีอยู่ทั้งหมดและยังไม่หมดอายุซึ่งตรงกับข้อมูลคุกกี้ที่ระบุ
-
การคืนสินค้า
-
Promise<Cookie[]>
Chrome เวอร์ชัน 88 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
)
แสดงที่เก็บคุกกี้ที่มีอยู่ทั้งหมด
พารามิเตอร์
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(cookieStores: CookieStore[]) => void
-
cookieStores
จัดเก็บคุกกี้ที่มีอยู่ทั้งหมด
-
การคืนสินค้า
-
Promise<CookieStore[]>
Chrome เวอร์ชัน 88 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
)
ลบคุกกี้ตามชื่อ
พารามิเตอร์
-
รายละเอียด
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(details?: object) => void
-
รายละเอียด
ออบเจ็กต์ไม่บังคับ
มีรายละเอียดเกี่ยวกับคุกกี้ที่ถูกนำออก หากนำออกไม่สำเร็จไม่ว่าจะด้วยเหตุผลใดก็ตาม ค่านี้จะเป็น "null" และตั้งค่า
runtime.lastError
-
ชื่อ
สตริง
ชื่อของคุกกี้ที่ถูกนําออก
-
partitionKey
CookiePartitionKey ไม่บังคับ
Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับอ่านหรือแก้ไขคุกกี้ด้วยแอตทริบิวต์ที่มีการแบ่งพาร์ติชัน
-
storeId
สตริง
รหัสของที่เก็บคุกกี้ซึ่งคุกกี้ถูกนำออกไป
-
URL
สตริง
URL ที่เชื่อมโยงกับคุกกี้ที่ถูกนำออกแล้ว
-
-
การคืนสินค้า
-
Promise<object | ไม่ระบุ>
Chrome เวอร์ชัน 88 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
set()
chrome.cookies.set(
details: object,
callback?: function,
)
ตั้งค่าคุกกี้ด้วยข้อมูลคุกกี้ที่ระบุ อาจเขียนทับคุกกี้ที่เทียบเท่าหากมี
พารามิเตอร์
-
รายละเอียด
ออบเจ็กต์
รายละเอียดเกี่ยวกับการตั้งค่าคุกกี้
-
โดเมน
string ไม่บังคับ
โดเมนของคุกกี้ หากไม่ระบุ คุกกี้ดังกล่าวจะกลายเป็นคุกกี้เฉพาะโฮสต์เท่านั้น
-
expirationDate
หมายเลข ไม่บังคับ
วันที่หมดอายุของคุกกี้เป็นจำนวนวินาทีนับตั้งแต่ UNIX Epoch หากไม่ระบุ คุกกี้นั้นจะกลายเป็นคุกกี้ของเซสชัน
-
httpOnly
บูลีน ไม่บังคับ
ระบุว่าคุกกี้ควรทำเครื่องหมายเป็น HttpOnly หรือไม่ ค่าเริ่มต้นคือ "เท็จ"
-
ชื่อ
string ไม่บังคับ
ชื่อของคุกกี้ เว้นว่างไว้โดยค่าเริ่มต้นหากละเว้น
-
partitionKey
CookiePartitionKey ไม่บังคับ
Chrome 119 ขึ้นไปคีย์พาร์ติชันสำหรับอ่านหรือแก้ไขคุกกี้ด้วยแอตทริบิวต์ที่มีการแบ่งพาร์ติชัน
-
เส้นทาง
string ไม่บังคับ
เส้นทางของคุกกี้ ค่าเริ่มต้นคือส่วนเส้นทางของพารามิเตอร์ URL
-
sameSite
SameSiteStatus ไม่บังคับ
Chrome 51 ขึ้นไปสถานะเว็บไซต์เดียวกันของคุกกี้ ค่าเริ่มต้นเป็น "ไม่ระบุ" กล่าวคือ หากละไว้ คุกกี้จะถูกตั้งค่าโดยไม่ระบุแอตทริบิวต์ SameSite
-
รักษาความปลอดภัย
บูลีน ไม่บังคับ
ระบุว่าคุกกี้ปลอดภัยหรือไม่ ค่าเริ่มต้นคือ "เท็จ"
-
storeId
string ไม่บังคับ
รหัสของที่เก็บคุกกี้ที่จะตั้งค่าคุกกี้ โดยค่าเริ่มต้น ระบบจะตั้งค่าคุกกี้ไว้ในที่เก็บคุกกี้ของบริบทการดำเนินการปัจจุบัน
-
URL
สตริง
URI คำขอที่จะเชื่อมโยงกับการตั้งค่าของคุกกี้ ค่านี้อาจส่งผลต่อค่าโดเมนและเส้นทางเริ่มต้นของคุกกี้ที่สร้างขึ้น หากไม่มีการระบุสิทธิ์ของโฮสต์สำหรับ URL นี้ในไฟล์ Manifest การเรียก API จะล้มเหลว
-
value
string ไม่บังคับ
ค่าของคุกกี้ เว้นว่างไว้โดยค่าเริ่มต้นหากละเว้น
-
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(cookie?: Cookie) => void
-
คุกกี้
คุกกี้ ไม่บังคับ
มีรายละเอียดเกี่ยวกับคุกกี้ที่ตั้งค่าแล้ว หากการตั้งค่าล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม ค่านี้จะเป็น "null" และตั้งค่า
runtime.lastError
-
การคืนสินค้า
-
Promise<Cookie | ไม่ระบุ>
Chrome เวอร์ชัน 88 ขึ้นไปรองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback
กิจกรรม
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการตั้งค่าหรือลบคุกกี้ สำหรับกรณีพิเศษ โปรดทราบว่าการอัปเดตพร็อพเพอร์ตี้ของคุกกี้เป็นกระบวนการที่มี 2 ขั้นตอน กล่าวคือ คุกกี้ที่จะอัปเดตจะถูกนำออกทั้งหมดก่อน โดยจะสร้างการแจ้งเตือนพร้อม "สาเหตุ" ของ "เขียนทับ" ที่ใช้เวลาเพียง 2 นาที หลังจากนั้นจะมีการเขียนคุกกี้ใหม่ด้วยค่าที่อัปเดตแล้ว ทำให้เกิดการแจ้งเตือนครั้งที่ 2 พร้อมข้อความ "สาเหตุ" "อาจไม่เหมาะสม"
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(changeInfo: object) => void
-
changeInfo
ออบเจ็กต์
-
สาเหตุ
สาเหตุเบื้องหลังการเปลี่ยนแปลงคุกกี้
-
คุกกี้
ข้อมูลเกี่ยวกับคุกกี้ที่ถูกตั้งค่าหรือนำออก
-
ลบแล้ว
boolean
เป็นจริงหากมีการนำคุกกี้ออก
-
-