ब्यौरा
कुकी के बारे में क्वेरी करने और उनमें बदलाव करने के लिए, chrome.cookies
API का इस्तेमाल करें. साथ ही, कुकी में बदलाव होने पर सूचना पाने के लिए भी इसका इस्तेमाल करें.
अनुमतियां
cookies
मेनिफ़ेस्ट
कुकी एपीआई का इस्तेमाल करने के लिए, आपको अपने मेनिफ़ेस्ट में "कुकी" अनुमति का एलान करना होगा. साथ ही, आपको उन सभी होस्ट के लिए होस्ट की अनुमतियां भी देनी होंगी जिनकी कुकी आपको ऐक्सेस करनी हैं. उदाहरण के लिए:
{
"name": "My extension",
...
"host_permissions": [
"*://*.google.com/"
],
"permissions": [
"cookies"
],
...
}
पार्टिशन करना
अलग-अलग सेक्शन में बांटी गई कुकी की मदद से, किसी साइट को यह मार्क करने की अनुमति मिलती है कि कुछ कुकी को टॉप लेवल फ़्रेम के ऑरिजिन के हिसाब से सेव किया जाना चाहिए. इसका मतलब है कि अगर साइट A को साइट B और साइट C में iframe का इस्तेमाल करके एम्बेड किया गया है, तो अलग-अलग स्टोरेज में सेव की गई कुकी की वैल्यू अलग-अलग हो सकती है.
chrome.cookies
में पार्टीशन करने की सुविधा नहीं है. इसका मतलब है कि सभी तरीके, सभी पार्टीशन से कुकी पढ़ते और उनमें कुकी लिखते हैं. cookies.set()
तरीका, कुकी को डिफ़ॉल्ट सेगमेंट में सेव करता है.
एक्सटेंशन के लिए, स्टोरेज को अलग-अलग हिस्सों में बांटने के सामान्य असर के बारे में जानने के लिए, स्टोरेज और कुकी देखें.
उदाहरण
कुकी एपीआई का इस्तेमाल करने का आसान उदाहरण, examples/api/cookies डायरेक्ट्री में देखा जा सकता है. अन्य उदाहरणों और सोर्स कोड देखने में मदद पाने के लिए, सैंपल देखें.
टाइप
Cookie
एचटीटीपी कुकी के बारे में जानकारी दिखाता है.
प्रॉपर्टी
-
डोमेन
स्ट्रिंग
कुकी का डोमेन (जैसे, "www.google.com", "example.com").
-
expirationDate
number ज़रूरी नहीं
कुकी के खत्म होने की तारीख, यूनिक्स के टाइमस्टैंप के बाद सेकंड में. सेशन कुकी के लिए उपलब्ध नहीं है.
-
hostOnly
बूलियन
अगर कुकी सिर्फ़ होस्ट के लिए है, तो यह सही है. इसका मतलब है कि अनुरोध का होस्ट, कुकी के डोमेन से पूरी तरह मेल खाना चाहिए.
-
httpOnly
बूलियन
अगर कुकी को HttpOnly के तौर पर मार्क किया गया है, तो यह वैल्यू 'सही' होगी. इसका मतलब है कि क्लाइंट-साइड स्क्रिप्ट, कुकी को ऐक्सेस नहीं कर सकतीं.
-
नाम
स्ट्रिंग
कुकी का नाम.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और उसके बाद के वर्शनPartitioned एट्रिब्यूट की मदद से कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
पाथ
स्ट्रिंग
कुकी का पाथ.
-
sameSiteChrome 51 और उसके बाद के वर्शन
कुकी का एक ही साइट वाला स्टेटस (यानी कि कुकी को किसी दूसरी साइट से किए गए अनुरोधों के साथ भेजा जाता है या नहीं).
-
सुरक्षित
बूलियन
अगर कुकी को 'सुरक्षित' के तौर पर मार्क किया गया है, तो यह वैल्यू 'सही' होगी.इसका मतलब है कि इसका दायरा सुरक्षित चैनलों तक सीमित है. आम तौर पर, ये चैनल एचटीटीपीएस होते हैं.
-
सत्र
बूलियन
अगर कुकी, खत्म होने की तारीख वाली परसिस्टेंट कुकी के बजाय सेशन कुकी है, तो यह वैल्यू 'सही है' पर सेट होती है.
-
storeId
स्ट्रिंग
getAllCookieStores() में बताए गए अनुसार, इस कुकी को सेव करने वाली कुकी स्टोर का आईडी.
-
value
स्ट्रिंग
कुकी की वैल्यू.
CookieDetails
कुकी की पहचान करने के लिए जानकारी.
प्रॉपर्टी
-
नाम
स्ट्रिंग
ऐक्सेस करने के लिए कुकी का नाम.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और उसके बाद के वर्शनPartitioned एट्रिब्यूट की मदद से कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
storeId
स्ट्रिंग ज़रूरी नहीं
उस कुकी स्टोर का आईडी जिसमें कुकी खोजी जानी है. डिफ़ॉल्ट रूप से, मौजूदा एक्सीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.
-
url
स्ट्रिंग
वह यूआरएल जिससे कुकी को ऐक्सेस किया जाना है. यह आर्ग्युमेंट, पूरा यूआरएल हो सकता है. ऐसे में, यूआरएल पाथ के बाद मौजूद किसी भी डेटा (जैसे, क्वेरी स्ट्रिंग) को अनदेखा कर दिया जाता है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट की अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल पूरा नहीं होगा.
CookiePartitionKey
यह पार्टिशन की गई कुकी की पार्टिशन कुंजी दिखाता है.
प्रॉपर्टी
-
hasCrossSiteAncestor
बूलियन ज़रूरी नहीं
Chrome 130 और उसके बाद के वर्शनइससे पता चलता है कि कुकी को दूसरी साइट के कॉन्टेक्स्ट में सेट किया गया था या नहीं. इससे, क्रॉस-साइट कॉन्टेक्स्ट में एम्बेड की गई टॉप-लेवल साइट, सेम-साइट कॉन्टेक्स्ट में टॉप-लेवल साइट से सेट की गई कुकी को ऐक्सेस नहीं कर पाती.
-
topLevelSite
स्ट्रिंग ज़रूरी नहीं
वह टॉप-लेवल साइट जहां पार्टिशन की गई कुकी उपलब्ध है.
CookieStore
यह ब्राउज़र में कुकी स्टोर को दिखाता है. उदाहरण के लिए, गुप्त मोड वाली विंडो, गुप्त मोड वाली विंडो से अलग कुकी स्टोर का इस्तेमाल करती है.
प्रॉपर्टी
-
आईडी
स्ट्रिंग
कुकी स्टोर के लिए यूनीक आइडेंटिफ़ायर.
-
tabIds
number[]
इस कुकी स्टोर को शेयर करने वाले सभी ब्राउज़र टैब के आइडेंटिफ़ायर.
FrameDetails
फ़्रेम की पहचान करने के लिए जानकारी.
प्रॉपर्टी
-
documentId
स्ट्रिंग ज़रूरी नहीं
दस्तावेज़ का यूनीक आइडेंटिफ़ायर. अगर frameId और/या tabId दिया गया है, तो दस्तावेज़ आईडी से मिले दस्तावेज़ से मैच करने के लिए उनकी पुष्टि की जाएगी.
-
frameId
number ज़रूरी नहीं
टैब में मौजूद फ़्रेम का यूनीक आइडेंटिफ़ायर.
-
tabId
number ज़रूरी नहीं
फ़्रेम वाले टैब का यूनीक आइडेंटिफ़ायर.
OnChangedCause
कुकी में बदलाव की वजह. अगर "chrome.cookies.remove" को साफ़ तौर पर कॉल करके कुकी को डाला गया था या हटाया गया था, तो "वजह" "साफ़ तौर पर" होगी. अगर समयसीमा खत्म होने की वजह से कुकी अपने-आप हट गई है, तो "वजह" के तौर पर "समयसीमा खत्म हो गई" दिखेगा. अगर किसी कुकी को, खत्म होने की पहले से खत्म हो चुकी तारीख के साथ ओवरराइट करने की वजह से हटाया गया था, तो "कारण" को "expired_overwrite" पर सेट किया जाएगा. अगर गै़रबै़ज कलेक्शन की वजह से कुकी अपने-आप हट गई थी, तो "वजह" के तौर पर "evicted" दिखेगा. अगर किसी "set" कॉल की वजह से कुकी अपने-आप हट गई है, तो "कारण" के तौर पर "ओवरराइट" दिखेगा. इसके हिसाब से अपना जवाब तैयार करें.
Enum
"evicted"
"expired"
"explicit"
"expired_overwrite"
"overwrite"
SameSiteStatus
कुकी की 'SameSite' स्थिति (https://tools.ietf.org/html/draft-west-first-party-cookies). 'no_restriction', 'SameSite=None' के साथ सेट की गई कुकी से जुड़ा है. 'lax', 'SameSite=Lax' और 'strict', 'SameSite=Strict' से जुड़ा है. 'unspecified', SameSite एट्रिब्यूट के बिना सेट की गई कुकी से जुड़ी है.
Enum
"no_restriction"
"lax"
"strict"
"unspecified"
तरीके
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
)
किसी एक कुकी के बारे में जानकारी दिखाता है. अगर दिए गए यूआरएल के लिए, एक ही नाम की एक से ज़्यादा कुकी मौजूद हैं, तो सबसे लंबे पाथ वाली कुकी को दिखाया जाएगा. एक ही पाथ की लंबाई वाली कुकी के लिए, सबसे पहले बनाई गई कुकी को दिखाया जाएगा.
पैरामीटर
रिटर्न
-
Promise<Cookie | undefined>
Chrome 88 और उसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
)
यह किसी एक कुकी स्टोर से, दी गई जानकारी से मैच होने वाली सभी कुकी को वापस लाता है. वापस मिलने वाली कुकी को क्रम से लगाया जाएगा. सबसे लंबे पाथ वाली कुकी सबसे पहले दिखेंगी. अगर एक से ज़्यादा कुकी का पाथ एक जैसा है, तो सबसे पहले बनाई गई कुकी सबसे पहले दिखेंगी. यह तरीका सिर्फ़ उन डोमेन की कुकी को वापस लाता है जिनके लिए एक्सटेंशन के पास होस्ट की अनुमतियां हैं.
पैरामीटर
-
विवरण
ऑब्जेक्ट
वापस लाई जा रही कुकी को फ़िल्टर करने के लिए जानकारी.
-
डोमेन
स्ट्रिंग ज़रूरी नहीं
इस विकल्प का इस्तेमाल करके, सिर्फ़ उन कुकी को वापस पाया जा सकता है जिनके डोमेन इस डोमेन से मेल खाते हैं या जो इस डोमेन के सबडोमेन हैं.
-
नाम
स्ट्रिंग ज़रूरी नहीं
कुकी को नाम के हिसाब से फ़िल्टर करता है.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और उसके बाद के वर्शनPartitioned एट्रिब्यूट की मदद से कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
पाथ
स्ट्रिंग ज़रूरी नहीं
इससे, उन कुकी को वापस पाने पर पाबंदी लगती है जिनका पाथ इस स्ट्रिंग से पूरी तरह मेल खाता है.
-
सुरक्षित
बूलियन ज़रूरी नहीं
कुकी को उनकी सुरक्षित प्रॉपर्टी के हिसाब से फ़िल्टर करता है.
-
सत्र
बूलियन ज़रूरी नहीं
सेशन बनाम पर्सिस्टेंट कुकी को फ़िल्टर करता है.
-
storeId
स्ट्रिंग ज़रूरी नहीं
कुकी स्टोर, जिससे कुकी वापस लाई जानी हैं. अगर इसे शामिल नहीं किया जाता है, तो मौजूदा एक्सीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.
-
url
स्ट्रिंग ज़रूरी नहीं
यह उन कुकी पर पाबंदी लगाता है जो दिए गए यूआरएल से मेल खाती हैं.
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(cookies: Cookie[]) => void
-
कुकी का इस्तेमाल करता है
Cookie[]
कुकी की दी गई जानकारी से मेल खाने वाली, सभी मौजूदा और ऐसी कुकी जिनकी समयसीमा खत्म नहीं हुई है.
-
रिटर्न
-
Promise<Cookie[]>
Chrome 88 और उसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
)
सभी मौजूदा कुकी स्टोर की सूची बनाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(cookieStores: CookieStore[]) => void
-
cookieStores
सभी मौजूदा कुकी स्टोर.
-
रिटर्न
-
Promise<CookieStore[]>
Chrome 88 और उसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
callback?: function,
)
दिखाए गए फ़्रेम के लिए पार्टीशन कुंजी.
पैरामीटर
-
विवरण
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(details: object) => void
-
विवरण
ऑब्जेक्ट
इसमें, वापस लाए गए पार्टीशन पासकोड की जानकारी होती है.
-
partitionKey
Partitioned एट्रिब्यूट की मदद से कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
-
रिटर्न
-
Promise<object>
प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
)
नाम के हिसाब से कुकी मिटाता है.
पैरामीटर
-
विवरण
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(details?: object) => void
-
विवरण
ऑब्जेक्ट ज़रूरी नहीं है
इसमें उस कुकी के बारे में जानकारी होती है जिसे हटाया गया है. अगर किसी वजह से प्रॉपर्टी हटाई नहीं जा सकी, तो यह "शून्य" होगी और
runtime.lastError
सेट हो जाएगा.-
नाम
स्ट्रिंग
हटाई गई कुकी का नाम.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और उसके बाद के वर्शनPartitioned एट्रिब्यूट की मदद से कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
storeId
स्ट्रिंग
उस कुकी स्टोर का आईडी जिससे कुकी हटाई गई थी.
-
url
स्ट्रिंग
हटाई गई कुकी से जुड़ा यूआरएल.
-
-
रिटर्न
-
Promise<object | undefined>
Chrome 88 और उसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.
set()
chrome.cookies.set(
details: object,
callback?: function,
)
दिए गए कुकी डेटा के साथ एक कुकी सेट करता है. अगर मिलती-जुलती कुकी मौजूद हैं, तो उन्हें ओवरराइट कर सकता है.
पैरामीटर
-
विवरण
ऑब्जेक्ट
सेट की जा रही कुकी के बारे में जानकारी.
-
डोमेन
स्ट्रिंग ज़रूरी नहीं
कुकी का डोमेन. अगर इसे छोड़ दिया जाता है, तो कुकी सिर्फ़ होस्ट के लिए बन जाती है.
-
expirationDate
number ज़रूरी नहीं
कुकी के खत्म होने की तारीख, यूनिक्स के टाइमस्टैंप के बाद सेकंड में. अगर इसे छोड़ दिया जाता है, तो कुकी एक सेशन कुकी बन जाती है.
-
httpOnly
बूलियन ज़रूरी नहीं
कुकी को HttpOnly के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है.
-
नाम
स्ट्रिंग ज़रूरी नहीं
कुकी का नाम. अगर यह जानकारी नहीं दी जाती है, तो यह डिफ़ॉल्ट रूप से खाली रहती है.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और उसके बाद के वर्शनPartitioned एट्रिब्यूट की मदद से कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
पाथ
स्ट्रिंग ज़रूरी नहीं
कुकी का पाथ. डिफ़ॉल्ट रूप से, यह यूआरएल पैरामीटर के पाथ वाले हिस्से पर सेट होता है.
-
sameSite
SameSiteStatus ज़रूरी नहीं
Chrome 51 और उसके बाद के वर्शनकुकी का सेम-साइट स्टेटस. डिफ़ॉल्ट रूप से "unspecified" पर सेट होती है. इसका मतलब है कि अगर इसे छोड़ दिया जाता है, तो कुकी को SameSite एट्रिब्यूट के बिना सेट किया जाता है.
-
सुरक्षित
बूलियन ज़रूरी नहीं
कुकी को सुरक्षित के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है.
-
storeId
स्ट्रिंग ज़रूरी नहीं
उस कुकी स्टोर का आईडी जिसमें कुकी सेट करनी है. डिफ़ॉल्ट रूप से, कुकी को मौजूदा एक्सीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर में सेट किया जाता है.
-
url
स्ट्रिंग
कुकी की सेटिंग से जोड़ने के लिए अनुरोध-यूआरआई. इस वैल्यू से, बनाई गई कुकी के डिफ़ॉल्ट डोमेन और पाथ की वैल्यू पर असर पड़ सकता है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट की अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल पूरा नहीं होगा.
-
value
स्ट्रिंग ज़रूरी नहीं
कुकी की वैल्यू. अगर यह जानकारी नहीं दी जाती है, तो यह डिफ़ॉल्ट रूप से खाली रहती है.
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर इस तरह दिखता है:(cookie?: Cookie) => void
-
कुकी
कुकी ज़रूरी नहीं है
इसमें सेट की गई कुकी के बारे में जानकारी होती है. अगर किसी वजह से सेटिंग लागू नहीं हो पाती है, तो यह "शून्य" होगी और
runtime.lastError
सेट हो जाएगा.
-
रिटर्न
-
Promise<Cookie | undefined>
Chrome 88 और उसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.
इवेंट
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
यह ट्रिगर तब होता है, जब कोई कुकी सेट या हटाई जाती है. किसी खास मामले के तौर पर, ध्यान दें कि कुकी की प्रॉपर्टी को अपडेट करने की प्रोसेस दो चरणों में पूरी की जाती है: सबसे पहले, अपडेट की जाने वाली कुकी को पूरी तरह से हटा दिया जाता है. इसके बाद, "ओवरराइट" की "वजह" के साथ सूचना जनरेट की जाती है. इसके बाद, अपडेट की गई वैल्यू के साथ एक नई कुकी लिखी जाती है. साथ ही, "cause" "explicit" के साथ दूसरी सूचना जनरेट की जाती है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callback
पैरामीटर इस तरह दिखता है:(changeInfo: object) => void
-
changeInfo
ऑब्जेक्ट
-
कारण
कुकी में बदलाव की वजह.
-
कुकी
सेट या हटाई गई कुकी के बारे में जानकारी.
-
निकाला गया
बूलियन
अगर कोई कुकी हटाई गई है, तो True.
-
-