chrome.cookies

refresh date: 2026-09-25 robots: noindex

ब्यौरा

कुकी के बारे में क्वेरी करने और उनमें बदलाव करने के लिए, chrome.cookies API का इस्तेमाल करें. साथ ही, कुकी में बदलाव होने पर सूचना पाने के लिए भी इसका इस्तेमाल करें.

अनुमतियां

cookies

मेनिफ़ेस्ट

कुकी एपीआई का इस्तेमाल करने के लिए, आपको अपने मेनिफ़ेस्ट में "कुकी" की अनुमति का एलान करना होगा. साथ ही, आपको उन सभी होस्ट के लिए होस्ट की अनुमतियां देनी होंगी जिनकी कुकी को ऐक्सेस करना है. उदाहरण के लिए:

{
  "name": "My extension",
  ...
  "host_permissions": [
    "*://*.google.com/"
  ],
  "permissions": [
    "cookies"
  ],
  ...
}

पार्टिशन करना

पार्टिशन्ड कुकी की मदद से, कोई साइट यह मार्क कर सकती है कि कुछ कुकी को टॉप लेवल फ़्रेम के ऑरिजिन के हिसाब से कीड किया जाना चाहिए. इसका मतलब है कि अगर साइट A को साइट B और साइट C में iframe का इस्तेमाल करके एम्बेड किया गया है, तो पार्टिशन्ड कुकी की वैल्यू हर साइट में अलग-अलग हो सकती है.

chrome.cookies में पार्टिशनिंग की सुविधा काम नहीं करती. इसका मतलब है कि सभी तरीके, सभी पार्टिशन से कुकी को पढ़ते और लिखते हैं. cookies.set() तरीका, कुकी को डिफ़ॉल्ट पार्टिशन में सेव करता है.

एक्सटेंशन के लिए, पार्टिशनिंग के सामान्य असर के बारे में जानने के लिए, स्टोरेज और कुकी देखें.

उदाहरण

कुकी एपीआई का इस्तेमाल करने का एक आसान उदाहरण, examples/api/cookies डायरेक्ट्री में देखा जा सकता है. अन्य उदाहरणों और सोर्स कोड को देखने में मदद पाने के लिए, सैंपल देखें.

टाइप

एचटीटीपी कुकी के बारे में जानकारी दिखाता है.

प्रॉपर्टी

  • स्ट्रिंग

    कुकी का डोमेन (उदाहरण के लिए, "www.google.com", "example.com").

  • number ज़रूरी नहीं

    कुकी की समयसीमा खत्म होने की तारीख, UNIX epoch के बाद से सेकंड की संख्या के तौर पर. सेशन कुकी के लिए उपलब्ध नहीं है.

  • बूलियन

    अगर कुकी सिर्फ़ होस्ट कुकी है, तो True (यानी कि अनुरोध का होस्ट, कुकी के डोमेन से पूरी तरह मेल खाना चाहिए).

  • बूलियन

    अगर कुकी को HttpOnly के तौर पर मार्क किया गया है, तो True (यानी कि कुकी को क्लाइंट-साइड स्क्रिप्ट से ऐक्सेस नहीं किया जा सकता).

  • स्ट्रिंग

    कुकी का नाम.

  • CookiePartitionKey ज़रूरी नहीं है

    Chrome 119+

    पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.

  • स्ट्रिंग

    कुकी का पाथ.

  • Chrome 51+

    कुकी का सेम-साइट स्टेटस (यानी कि क्या कुकी को किसी दूसरी साइट से किए गए अनुरोधों के साथ भेजा जाता है).

  • बूलियन

    अगर कुकी को 'सुरक्षित' के तौर पर मार्क किया गया है, तो True (यानी कि इसका दायरा सुरक्षित चैनलों तक सीमित है, आम तौर पर एचटीटीपीएस).

  • बूलियन

    अगर कुकी, सेशन कुकी है, तो 'सही है' पर सेट करें. यह परसिस्टेंट कुकी से अलग होती है, क्योंकि इसकी समयसीमा खत्म होने की तारीख होती है.

  • स्ट्रिंग

    इस कुकी को सेव करने वाले कुकी स्टोर का आईडी, जैसा कि getAllCookieStores() में दिया गया है.

  • स्ट्रिंग

    कुकी की वैल्यू.

CookieDetails

Chrome 88 या इसके बाद का वर्शन

कुकी की पहचान करने के लिए जानकारी.

प्रॉपर्टी

  • नाम

    स्ट्रिंग

    ऐक्सेस की जाने वाली कुकी का नाम.

  • partitionKey

    CookiePartitionKey ज़रूरी नहीं है

    Chrome 119+

    पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.

  • storeId

    string ज़रूरी नहीं

    कुकी स्टोर का आईडी, जिसमें कुकी को खोजना है. डिफ़ॉल्ट रूप से, मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.

  • url

    स्ट्रिंग

    वह यूआरएल जिससे ऐक्सेस की जाने वाली कुकी जुड़ी है. यह आर्ग्युमेंट पूरा यूआरएल हो सकता है.ऐसे में, यूआरएल पाथ के बाद मौजूद किसी भी डेटा को अनदेखा कर दिया जाता है. जैसे, क्वेरी स्ट्रिंग. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट की अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल नहीं किया जा सकेगा.

CookiePartitionKey

Chrome 119+

यह पार्टिशन्ड कुकी के पार्टिशन की कुंजी को दिखाता है.

प्रॉपर्टी

  • hasCrossSiteAncestor

    बूलियन ज़रूरी नहीं

    Chrome 130 या इसके बाद के वर्शन

    इससे पता चलता है कि कुकी को क्रॉस-साइट कॉन्टेक्स्ट में सेट किया गया था या नहीं. इससे, क्रॉस-साइट कॉन्टेक्स्ट में एम्बेड की गई टॉप-लेवल साइट को, सेम-साइट कॉन्टेक्स्ट में टॉप-लेवल साइट की सेट की गई कुकी ऐक्सेस करने से रोका जाता है.

  • topLevelSite

    string ज़रूरी नहीं

    वह टॉप-लेवल साइट जिसमें पार्टिशन्ड कुकी उपलब्ध है.

CookieStore

यह ब्राउज़र में कुकी स्टोर को दिखाता है. उदाहरण के लिए, गुप्त मोड वाली विंडो, सामान्य विंडो से अलग कुकी स्टोर का इस्तेमाल करती है.

प्रॉपर्टी

  • आईडी

    स्ट्रिंग

    कुकी स्टोर के लिए यूनीक आइडेंटिफ़ायर.

  • tabIds

    number[]

    इस कुकी स्टोर को शेयर करने वाले सभी ब्राउज़र टैब के आइडेंटिफ़ायर.

FrameDetails

Chrome 132 या इसके बाद का वर्शन

फ़्रेम की पहचान करने के लिए जानकारी.

प्रॉपर्टी

  • documentId

    string ज़रूरी नहीं

    दस्तावेज़ के लिए यूनीक आइडेंटिफ़ायर. अगर frameId और/या tabId दिए गए हैं, तो उनकी पुष्टि की जाएगी. इससे यह पक्का किया जाएगा कि वे दिए गए दस्तावेज़ आईडी से मिले दस्तावेज़ से मैच करते हों.

  • frameId

    number ज़रूरी नहीं

    टैब में मौजूद फ़्रेम के लिए यूनीक आइडेंटिफ़ायर.

  • tabId

    number ज़रूरी नहीं

    फ़्रेम वाले टैब के लिए यूनीक आइडेंटिफ़ायर.

OnChangedCause

Chrome 44 या इसके बाद का वर्शन

कुकी में हुए बदलाव की मुख्य वजह. अगर "chrome.cookies.remove" को साफ़ तौर पर कॉल करके कुकी डाली गई या हटाई गई, तो "वजह" "साफ़ तौर पर" होगी. अगर समयसीमा खत्म होने की वजह से कुकी अपने-आप हट गई है, तो "वजह" के तौर पर "समयसीमा खत्म हो गई" दिखेगा. अगर किसी कुकी को पहले से ही खत्म हो चुकी तारीख के साथ ओवरराइट करने की वजह से हटाया गया है, तो "cause" को "expired_overwrite" पर सेट किया जाएगा. अगर गार्बेज कलेक्शन की वजह से कुकी अपने-आप हट गई है, तो "cause" की वैल्यू "evicted" होगी. अगर किसी कुकी को ओवरराइट करने वाले "सेट" कॉल की वजह से, उसे अपने-आप हटा दिया गया था, तो "वजह" के तौर पर "ओवरराइट" दिखेगा. इसके हिसाब से जवाब देने की योजना बनाएं.

Enum

"evicted"

"समयसीमा खत्म हो गई है"

"explicit"

"expired_overwrite"

"overwrite"

SameSiteStatus

Chrome 51+

कुकी की '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>

किसी एक कुकी के बारे में जानकारी हासिल करता है. अगर दिए गए यूआरएल के लिए एक ही नाम की एक से ज़्यादा कुकी मौजूद हैं, तो सबसे लंबे पाथ वाली कुकी को दिखाया जाएगा. एक जैसी पाथ लेंथ वाली कुकी के लिए, सबसे पहले बनाई गई कुकी को दिखाया जाएगा.

पैरामीटर

  • विवरण
  • कॉलबैक

    function ज़रूरी नहीं

    callback पैरामीटर कुछ ऐसा दिखता है:

    (cookie?: Cookie) => void

    • कुकी ज़रूरी नहीं है

      इसमें कुकी के बारे में जानकारी होती है. अगर ऐसी कोई कुकी नहीं मिलती है, तो इस पैरामीटर की वैल्यू शून्य होती है.

रिटर्न

  • Promise<Cookie | undefined>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

getAll()

वादा
chrome.cookies.getAll(
  details: object,
  callback?: function,
)
: Promise<Cookie[]>

दी गई जानकारी से मैच होने वाली सभी कुकी को एक ही कुकी स्टोर से वापस लाता है. नतीजे में मिलने वाली कुकी को क्रम से लगाया जाएगा. इसमें सबसे लंबे पाथ वाली कुकी सबसे पहले दिखेंगी. अगर एक से ज़्यादा कुकी के पाथ की लंबाई एक जैसी है, तो सबसे पहले बनाई गई कुकी को पहले दिखाया जाएगा. यह तरीका सिर्फ़ उन डोमेन के लिए कुकी हासिल करता है जिनके लिए एक्सटेंशन के पास होस्ट की अनुमतियां होती हैं.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    ऐसी जानकारी जिससे कुकी को फ़िल्टर किया जा सके.

    • डोमेन

      string ज़रूरी नहीं

      यह फ़िल्टर, वापस लाई गई कुकी को उन कुकी तक सीमित करता है जिनके डोमेन, इस डोमेन से मेल खाते हैं या इसके सबडोमेन हैं.

    • नाम

      string ज़रूरी नहीं

      कुकी को नाम के हिसाब से फ़िल्टर करता है.

    • partitionKey

      CookiePartitionKey ज़रूरी नहीं है

      Chrome 119+

      पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.

    • पाथ

      string ज़रूरी नहीं

      यह नीति, वापस लाई गई कुकी को उन कुकी तक सीमित करती है जिनका पाथ इस स्ट्रिंग से पूरी तरह मैच करता है.

    • सुरक्षित

      बूलियन ज़रूरी नहीं

      कुकी को उनकी सुरक्षित प्रॉपर्टी के हिसाब से फ़िल्टर करता है.

    • सेशन

      बूलियन ज़रूरी नहीं

      सेशन कुकी और परसिस्टेंट कुकी को फ़िल्टर करता है.

    • storeId

      string ज़रूरी नहीं

      कुकी स्टोर, जिससे कुकी वापस पाई जा सकती हैं. अगर इसे शामिल नहीं किया जाता है, तो मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.

    • url

      string ज़रूरी नहीं

      यह उन कुकी को सीमित करता है जो दिए गए यूआरएल से मैच करती हैं.

  • कॉलबैक

    function ज़रूरी नहीं

    callback पैरामीटर कुछ ऐसा दिखता है:

    (cookies: Cookie[]) => void

    • कुकी का इस्तेमाल करता है

      दी गई कुकी की जानकारी से मैच होने वाली सभी मौजूदा कुकी, जिनकी समयसीमा खत्म नहीं हुई है.

रिटर्न

  • Promise<Cookie[]>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

getAllCookieStores()

वादा
chrome.cookies.getAllCookieStores(
  callback?: function,
)
: Promise<CookieStore[]>

सभी मौजूदा कुकी स्टोर की सूची दिखाता है.

पैरामीटर

  • कॉलबैक

    function ज़रूरी नहीं

    callback पैरामीटर कुछ ऐसा दिखता है:

    (cookieStores: CookieStore[]) => void

    • cookieStores

      सभी मौजूदा कुकी स्टोर.

रिटर्न

  • Promise<CookieStore[]>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

getPartitionKey()

Promise Chrome 132+
chrome.cookies.getPartitionKey(
  details: FrameDetails,
  callback?: function,
)
: Promise<object>

बताए गए फ़्रेम के लिए, पार्टिशन की कुंजी.

पैरामीटर

  • विवरण
  • कॉलबैक

    function ज़रूरी नहीं

    callback पैरामीटर कुछ ऐसा दिखता है:

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      इसमें, वापस पाई गई पार्टिशन कुंजी के बारे में जानकारी होती है.

      • partitionKey

        पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.

रिटर्न

  • Promise<object>

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

remove()

वादा
chrome.cookies.remove(
  details: CookieDetails,
  callback?: function,
)
: Promise<object | undefined>

यह अनुमति मिलने पर, किसी कुकी को उसके नाम से मिटाया जा सकता है.

पैरामीटर

  • विवरण
  • कॉलबैक

    function ज़रूरी नहीं

    callback पैरामीटर कुछ ऐसा दिखता है:

    (details?: object) => void

    • विवरण

      object ज़रूरी नहीं

      इसमें हटाई गई कुकी के बारे में जानकारी होती है. अगर किसी वजह से कॉन्टेंट नहीं हटाया जा सका, तो प्रॉमिस को अस्वीकार कर दिया जाएगा.

      • नाम

        स्ट्रिंग

        हटाई गई कुकी का नाम.

      • partitionKey

        CookiePartitionKey ज़रूरी नहीं है

        Chrome 119+

        पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.

      • storeId

        स्ट्रिंग

        उस कुकी स्टोर का आईडी जिससे कुकी हटाई गई.

      • url

        स्ट्रिंग

        हटाई गई कुकी से जुड़ा यूआरएल.

रिटर्न

  • Promise<object | undefined>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

set()

वादा
chrome.cookies.set(
  details: object,
  callback?: function,
)
: Promise<Cookie | undefined>

यह अनुमति मिलने पर, दिए गए कुकी डेटा के साथ किसी कुकी को सेट किया जा सकता है. अगर पहले से कोई कुकी मौजूद है, तो उसे ओवरराइट किया जा सकता है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    सेट की जा रही कुकी के बारे में जानकारी.

    • डोमेन

      string ज़रूरी नहीं

      कुकी का डोमेन. अगर इसे शामिल नहीं किया जाता है, तो कुकी सिर्फ़ होस्ट कुकी बन जाती है.

    • expirationDate

      number ज़रूरी नहीं

      कुकी की समयसीमा खत्म होने की तारीख, UNIX epoch के बाद से सेकंड की संख्या के तौर पर. अगर इसे शामिल नहीं किया जाता है, तो कुकी एक सेशन कुकी बन जाती है.

    • httpOnly

      बूलियन ज़रूरी नहीं

      कुकी को HttpOnly के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट तौर पर, यह 'गलत' पर सेट होती है.

    • नाम

      string ज़रूरी नहीं

      कुकी का नाम. अगर इसे शामिल नहीं किया जाता है, तो यह डिफ़ॉल्ट रूप से खाली रहता है.

    • partitionKey

      CookiePartitionKey ज़रूरी नहीं है

      Chrome 119+

      पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.

    • पाथ

      string ज़रूरी नहीं

      कुकी का पाथ. यह डिफ़ॉल्ट रूप से, यूआरएल पैरामीटर के पाथ वाले हिस्से पर सेट होता है.

    • sameSite

      SameSiteStatus ज़रूरी नहीं

      Chrome 51+

      कुकी का सेम-साइट स्टेटस. यह डिफ़ॉल्ट रूप से "unspecified" पर सेट होता है. इसका मतलब है कि अगर इसे शामिल नहीं किया जाता है, तो कुकी को SameSite एट्रिब्यूट की वैल्यू बताए बिना सेट किया जाता है.

    • सुरक्षित

      बूलियन ज़रूरी नहीं

      कुकी को सुरक्षित के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट तौर पर, यह 'गलत' पर सेट होती है.

    • storeId

      string ज़रूरी नहीं

      कुकी स्टोर का आईडी, जिसमें कुकी सेट करनी है. डिफ़ॉल्ट रूप से, कुकी को मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर में सेट किया जाता है.

    • url

      स्ट्रिंग

      कुकी की सेटिंग से जोड़ने के लिए अनुरोध-यूआरआई. इस वैल्यू से, बनाई गई कुकी के डिफ़ॉल्ट डोमेन और पाथ की वैल्यू पर असर पड़ सकता है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट की अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल नहीं किया जा सकेगा.

    • मान

      string ज़रूरी नहीं

      कुकी की वैल्यू. अगर इसे शामिल नहीं किया जाता है, तो यह डिफ़ॉल्ट रूप से खाली रहता है.

  • कॉलबैक

    function ज़रूरी नहीं

    callback पैरामीटर कुछ ऐसा दिखता है:

    (cookie?: Cookie) => void

    • कुकी ज़रूरी नहीं है

      इसमें सेट की गई कुकी के बारे में जानकारी होती है. अगर किसी वजह से सेटिंग नहीं हो पाती है, तो प्रॉमिस को अस्वीकार कर दिया जाएगा.

रिटर्न

  • Promise<Cookie | undefined>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

इवेंट

onChanged

chrome.cookies.onChanged.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब कोई कुकी सेट की जाती है या हटाई जाती है. खास तौर पर, ध्यान दें कि कुकी की प्रॉपर्टी को अपडेट करने की प्रोसेस दो चरणों में पूरी होती है: अपडेट की जाने वाली कुकी को पहले पूरी तरह से हटा दिया जाता है. इससे "cause" के तौर पर "overwrite" वाली सूचना जनरेट होती है. इसके बाद, अपडेट की गई वैल्यू के साथ एक नई कुकी बनाई जाती है. इससे "cause" "explicit" के साथ दूसरी सूचना जनरेट होती है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर कुछ ऐसा दिखता है:

    (changeInfo: object) => void

    • changeInfo

      ऑब्जेक्ट

      • कारण

        कुकी में हुए बदलाव की मुख्य वजह.

      • सेट या हटाई गई कुकी के बारे में जानकारी.

      • निकाला गया

        बूलियन

        अगर कोई कुकी हटाई गई है, तो वैल्यू 'सही' के तौर पर सेट होगी.