कंपनी का ब्यौरा
कुकी के बारे में क्वेरी करने और उनमें बदलाव करने के लिए 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
नंबर ज़रूरी नहीं
कुकी की समयसीमा खत्म होने की तारीख, UNIX epoch के बाद से सेकंड की संख्या के तौर पर. यह विकल्प सेशन कुकी के लिए नहीं दिया जाता है.
-
hostOnly
boolean
अगर कुकी, सिर्फ़ होस्ट के लिए होस्ट की गई कुकी है, तो वैल्यू 'सही' होगी. इसका मतलब है कि अनुरोध के होस्ट को कुकी के डोमेन से पूरी तरह मैच करना होगा.
-
httpOnly
boolean
अगर कुकी को HttpOnly के तौर पर मार्क किया गया है, तो वैल्यू 'सही' होगी. इसका मतलब है कि क्लाइंट-साइड स्क्रिप्ट, कुकी को ऐक्सेस नहीं कर पाएगी.
-
नाम
स्ट्रिंग
कुकी का नाम.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और इसके बाद के वर्शनपार्टिशन्ड एट्रिब्यूट के साथ कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
पाथ
स्ट्रिंग
कुकी का पाथ.
-
sameSiteChrome 51 और इसके बाद के वर्शन
कुकी की एक ही साइट का स्टेटस (यानी कि कुकी को क्रॉस-साइट अनुरोधों के साथ भेजा गया है या नहीं).
-
सुरक्षित
boolean
अगर कुकी को 'सुरक्षित' के तौर पर मार्क किया गया है, तो वैल्यू 'सही' होगी. इसका मतलब है कि इसका स्कोप आम तौर पर एचटीटीपीएस के तौर पर सुरक्षित चैनलों तक ही सीमित है.
-
सेशन
boolean
अगर कुकी, खत्म होने की तारीख वाली स्थायी कुकी के बजाय एक सेशन कुकी है, तो वैल्यू 'सही' होगी.
-
storeId
स्ट्रिंग
इस कुकी वाले कुकी स्टोर का आईडी, जैसा कि getAllCookieStores() में दिया गया है.
-
value
स्ट्रिंग
कुकी की वैल्यू.
CookieDetails
कुकी की पहचान करने के लिए जानकारी.
प्रॉपर्टी
-
नाम
स्ट्रिंग
ऐक्सेस करने के लिए कुकी का नाम.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और इसके बाद के वर्शनपार्टिशन्ड एट्रिब्यूट के साथ कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
storeId
स्ट्रिंग ज़रूरी नहीं
उस कुकी स्टोर का आईडी जिसमें कुकी को खोजना है. डिफ़ॉल्ट रूप से, एक्ज़ीक्यूशन के मौजूदा कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.
-
यूआरएल
स्ट्रिंग
वह यूआरएल जिससे कुकी को ऐक्सेस करना है. यह आर्ग्युमेंट एक पूरा यूआरएल हो सकता है. इस स्थिति में, यूआरएल पाथ (जैसे, क्वेरी स्ट्रिंग) के बाद मौजूद किसी भी डेटा को अनदेखा कर दिया जाता है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट की अनुमतियों की जानकारी नहीं दी गई है, तो एपीआई कॉल पूरा नहीं हो पाएगा.
CookiePartitionKey
पार्टिशन की गई कुकी की पार्टीशन कुंजी के बारे में बताता है.
प्रॉपर्टी
-
topLevelSite
स्ट्रिंग ज़रूरी नहीं
टॉप लेवल की वह साइट जिसमें पार्टिशन्ड कुकी मौजूद होती है.
CookieStore
ब्राउज़र में कुकी स्टोर के बारे में बताता है. उदाहरण के लिए, एक गुप्त मोड विंडो किसी गैर-गुप्त विंडो से अलग कुकी स्टोर का इस्तेमाल करती है.
प्रॉपर्टी
-
आईडी
स्ट्रिंग
कुकी स्टोर के लिए यूनीक आइडेंटिफ़ायर.
-
tabIds
नंबर[]
इस कुकी स्टोर को शेयर करने वाले सभी ब्राउज़र टैब के आइडेंटिफ़ायर.
OnChangedCause
कुकी में बदलाव की वजह. अगर "chrome.cookies.remove" पर कॉल करके कोई कुकी डाली गई थी या हटाई गई थी, तो "वजह" "साफ़ तौर पर" दिखेगा. अगर समयसीमा खत्म होने की वजह से कुकी अपने-आप हट गई थी, तो "वजह" का स्टेटस "समयसीमा खत्म हो गई" होगा. अगर किसी कुकी को समयसीमा खत्म होने की तारीख के साथ ओवरराइट होने की वजह से हटाया गया था, तो "cause" को "expired_overwrite" पर सेट किया जाएगा. अगर ट्रैश कलेक्शन की वजह से कोई कुकी अपने-आप हट गई थी, तो "वजह" को "हटा" दिया जाएगा. अगर किसी कुकी को अलग कर देने वाले "सेट" कॉल की वजह से, अपने-आप हट गया है, तो "वजह" "ओवरराइट" हो जाएगा. इसी हिसाब से अपने जवाब देने का प्लान बनाएं.
Enum
"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 एट्रिब्यूट नहीं दिया गया है.
Enum
"no_restriction"
तरीके
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 और इसके बाद के वर्शनपार्टिशन्ड एट्रिब्यूट के साथ कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
पाथ
स्ट्रिंग ज़रूरी नहीं
वापस लाई गई कुकी को उन कुकी तक सीमित करता है जिनका पाथ इस स्ट्रिंग से पूरी तरह मेल खाता है.
-
सुरक्षित
बूलियन ज़रूरी नहीं
कुकी को उनकी सुरक्षित प्रॉपर्टी के हिसाब से फ़िल्टर करता है.
-
सेशन
बूलियन ज़रूरी नहीं
सेशन बनाम परसिस्टेंट कुकी को फ़िल्टर करता है.
-
storeId
स्ट्रिंग ज़रूरी नहीं
वह कुकी स्टोर जिससे कुकी हासिल करनी हैं. अगर इसे हटाया जाता है, तो मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.
-
यूआरएल
स्ट्रिंग ज़रूरी नहीं
वापस लाई गई कुकी को उन कुकी तक सीमित करता है जो दिए गए यूआरएल से मेल खाएंगी.
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(cookies: Cookie[]) => void
-
कुकी
कुकी[]
कुकी की जानकारी से मेल खाने वाली सभी मौजूदा और ऐसी कुकी जिनकी समयसीमा खत्म नहीं हुई है.
-
लौटाए गए प्रॉडक्ट
-
Promise<Cookie[]>
Chrome 88+प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
)
सभी मौजूदा कुकी स्टोर की सूची बनाता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(cookieStores: CookieStore[]) => void
-
cookieStores
सभी मौजूदा कुकी स्टोर.
-
लौटाए गए प्रॉडक्ट
-
Promise<CookieStore[]>
Chrome 88+प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
)
नाम से कुकी मिटाता है.
पैरामीटर
-
जानकारी
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(details?: object) => void
-
जानकारी
ऑब्जेक्ट ज़रूरी नहीं
इसमें हटाई गई कुकी की जानकारी होती है. अगर किसी वजह से इसे हटाया नहीं जा सका, तो यह "शून्य" होगा और
runtime.lastError
को सेट कर दिया जाएगा.-
नाम
स्ट्रिंग
हटाई गई कुकी का नाम.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और इसके बाद के वर्शनपार्टिशन्ड एट्रिब्यूट के साथ कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
storeId
स्ट्रिंग
उस कुकी स्टोर का आईडी जिससे कुकी हटाई गई थी.
-
यूआरएल
स्ट्रिंग
हटाई गई कुकी से जुड़ा यूआरएल.
-
-
लौटाए गए प्रॉडक्ट
-
Promise<object | undefined>
Chrome 88+प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
set()
chrome.cookies.set(
details: object,
callback?: function,
)
दिए गए कुकी डेटा के साथ कुकी सेट करता है; अगर मिलती-जुलती कुकी मौजूद हैं, तो उन्हें ओवरराइट कर सकता है.
पैरामीटर
-
जानकारी
ऑब्जेक्ट
सेट की जा रही कुकी के बारे में जानकारी.
-
डोमेन
स्ट्रिंग ज़रूरी नहीं
कुकी का डोमेन. अगर इसे मिटाया जाता है, तो कुकी, सिर्फ़ होस्ट के लिए कुकी बन जाती है.
-
expirationDate
नंबर ज़रूरी नहीं
कुकी की समयसीमा खत्म होने की तारीख, UNIX epoch के बाद से सेकंड की संख्या के तौर पर. अगर इसे मिटाया जाता है, तो कुकी, सेशन कुकी बन जाती है.
-
httpOnly
बूलियन ज़रूरी नहीं
कुकी को HttpOnly के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट तौर पर, यह 'गलत' पर सेट होता है.
-
नाम
स्ट्रिंग ज़रूरी नहीं
कुकी का नाम. अगर शामिल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से खाली होता है.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं
Chrome 119 और इसके बाद के वर्शनपार्टिशन्ड एट्रिब्यूट के साथ कुकी पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की कुंजी.
-
पाथ
स्ट्रिंग ज़रूरी नहीं
कुकी का पाथ. डिफ़ॉल्ट तौर पर, यूआरएल पैरामीटर के पाथ वाले हिस्से को चुना जाता है.
-
sameSite
SameSiteStatus ज़रूरी नहीं है
Chrome 51 और इसके बाद के वर्शनकुकी की एक ही साइट की स्थिति. डिफ़ॉल्ट तौर पर "तय नहीं किया गया" होता है. इसका मतलब है कि अगर इसे मिटाया जाता है, तो कुकी को SameSite एट्रिब्यूट तय किए बिना सेट कर दिया जाता है.
-
सुरक्षित
बूलियन ज़रूरी नहीं
कुकी को सुरक्षित के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट तौर पर, यह 'गलत' पर सेट होता है.
-
storeId
स्ट्रिंग ज़रूरी नहीं
उस कुकी स्टोर का आईडी जिसमें कुकी सेट करनी है. डिफ़ॉल्ट रूप से, कुकी, एक्ज़ीक्यूशन के मौजूदा कॉन्टेक्स्ट के कुकी स्टोर में सेट की जाती है.
-
यूआरएल
स्ट्रिंग
कुकी की सेटिंग से जोड़ने के लिए अनुरोध-यूआरआई. यह वैल्यू, बनाई गई कुकी के डिफ़ॉल्ट डोमेन और पाथ वैल्यू पर असर डाल सकती है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट की अनुमतियों की जानकारी नहीं दी गई है, तो एपीआई कॉल पूरा नहीं हो पाएगा.
-
value
स्ट्रिंग ज़रूरी नहीं
कुकी की वैल्यू. अगर शामिल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से खाली होता है.
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:(cookie?: Cookie) => void
-
कुकी
कुकी ज़रूरी नहीं
इसमें सेट की गई कुकी के बारे में जानकारी होती है. अगर किसी वजह से सेटिंग काम नहीं कर रही है, तो उसे "शून्य" कर दिया जाएगा और
runtime.lastError
को सेट कर दिया जाएगा.
-
लौटाए गए प्रॉडक्ट
-
Promise<Cookie | undefined>
Chrome 88+प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन पर काम करता है. अन्य प्लैटफ़ॉर्म के लिए कॉलबैक का इस्तेमाल करना ज़रूरी है.
इवेंट
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
कुकी सेट होने या निकालने पर सक्रिय होता है. खास मामले में, ध्यान दें कि कुकी की प्रॉपर्टी को अपडेट करना, दो चरणों वाली प्रोसेस के तौर पर लागू किया जाता है: अपडेट की जाने वाली कुकी को पहले पूरी तरह से हटाया जाता है. साथ ही, "ओवरराइट" के "वजह" वाली सूचना जनरेट की जाती है. इसके बाद, अपडेट की गई वैल्यू के साथ एक नई कुकी लिखी जाती है और "साफ़ तौर पर" "वजह" वाली दूसरी सूचना जनरेट होती है.
पैरामीटर
-
कॉलबैक
function
callback
पैरामीटर ऐसा दिखता है:(changeInfo: object) => void
-
changeInfo
ऑब्जेक्ट
-
cause
कुकी में बदलाव की वजह.
-
कुकी
सेट की गई या हटाई गई कुकी के बारे में जानकारी.
-
हटाया गया
boolean
अगर कोई कुकी हटा दी गई है, तो वैल्यू 'सही' होगी.
-
-