chrome.identity

ब्यौरा

OAuth2 ऐक्सेस टोकन पाने के लिए, chrome.identity API का इस्तेमाल करें.

अनुमतियां

identity

टाइप

AccountInfo

प्रॉपर्टी

  • id

    स्ट्रिंग

    खाते के लिए यूनीक आइडेंटिफ़ायर. यह आईडी पूरे खाते के लिए नहीं बदलेगा.

AccountStatus

Chrome 84+

Enum

"सिंक"
यह बताता है कि प्राथमिक खाते के लिए सिंक करने की सुविधा चालू है.

"कोई भी"
प्राथमिक खाते की मौजूदगी के बारे में बताता है, अगर कोई हो.

GetAuthTokenResult

Chrome 105 और इसके बाद के वर्शन

प्रॉपर्टी

  • grantedScopes

    स्ट्रिंग[] ज़रूरी नहीं है

    एक्सटेंशन को दिए गए OAuth2 दायरों की सूची.

  • टोकन

    स्ट्रिंग ज़रूरी नहीं

    अनुरोध से जुड़ा खास टोकन.

InvalidTokenDetails

प्रॉपर्टी

  • टोकन

    स्ट्रिंग

    वह टोकन जिसे कैश मेमोरी से हटाना है.

ProfileDetails

Chrome 84+

प्रॉपर्टी

  • accountStatus

    AccountStatus ज़रूरी नहीं

    प्रोफ़ाइल में साइन इन किए गए मुख्य खाते की स्थिति जिसका ProfileUserInfo दिखाया जाना चाहिए. डिफ़ॉल्ट तौर पर यह SYNC खाते की स्थिति है.

ProfileUserInfo

प्रॉपर्टी

  • email

    स्ट्रिंग

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

  • id

    स्ट्रिंग

    खाते के लिए यूनीक आइडेंटिफ़ायर. यह आईडी पूरे खाते के लिए नहीं बदलेगा. अगर उपयोगकर्ता ने साइन इन नहीं किया है या (M41+ में) identity.email मेनिफ़ेस्ट की अनुमति के बारे में नहीं बताया गया है, तो यह फ़ील्ड खाली होगा.

TokenDetails

प्रॉपर्टी

  • खाता

    AccountInfo ज़रूरी नहीं

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

  • enableGranularPermissions

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

    Chrome 87 और इसके बाद के वर्शन

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

  • इंटरैक्टिव

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

    टोकन फ़ेच करने के लिए, उपयोगकर्ता को Chrome में साइन-इन करना पड़ सकता है या ऐप्लिकेशन के अनुरोध किए गए दायरों को मंज़ूरी देनी पड़ सकती है. अगर इंटरैक्टिव फ़्लैग true है, तो getAuthToken उपयोगकर्ता को ज़रूरत के हिसाब से निर्देश देगा. अगर फ़्लैग false पर सेट है या हटाया गया है, तो getAuthToken किसी भी समय अनुरोध की ज़रूरत होने पर गड़बड़ी दिखाएगा.

  • स्कोप

    स्ट्रिंग[] ज़रूरी नहीं है

    अनुरोध करने के लिए, OAuth2 दायरों की सूची.

    अगर scopes फ़ील्ड मौजूद होता है, तो यह Manifest.json में दिए गए दायरों की सूची को बदल देता है.

WebAuthFlowDetails

प्रॉपर्टी

  • abortOnLoadForNonInteractive

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

    Chrome 113 और इसके बाद के वर्शन

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

    अगर इसे true (डिफ़ॉल्ट) पर सेट किया जाता है, तो पेज लोड होते ही फ़्लो बंद हो जाएगा. अगर इस नीति को false पर सेट किया जाता है, तो timeoutMsForNonInteractive के पास होने के बाद ही फ़्लो खत्म होगा. यह सुविधा, उन पहचान देने वाली कंपनियों के लिए फ़ायदेमंद है जो पेज लोड होने के बाद रीडायरेक्ट करने के लिए, JavaScript का इस्तेमाल करते हैं.

  • इंटरैक्टिव

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

    इंटरैक्टिव मोड में पुष्टि करने का फ़्लो लॉन्च करना है या नहीं.

    ऐसा हो सकता है कि पुष्टि करने के कुछ फ़्लो, नतीजे के यूआरएल पर तुरंत रीडायरेक्ट हों. इसलिए, launchWebAuthFlow अपने वेब व्यू को तब तक छिपाता है, जब तक पहला नेविगेशन, फ़ाइनल यूआरएल पर रीडायरेक्ट नहीं करता या दिखाए जाने वाले पेज को लोड नहीं करता.

    अगर interactive फ़्लैग true है, तो पेज लोड पूरा होने पर विंडो दिखेगी. अगर फ़्लैग false है या हटाया गया है, तो शुरुआती नेविगेशन फ़्लो को पूरा नहीं करने पर launchWebAuthFlow गड़बड़ी के साथ दिखेगा.

    रीडायरेक्ट करने के लिए JavaScript का इस्तेमाल करने वाले फ़्लो के लिए, abortOnLoadForNonInteractive को false पर सेट किया जा सकता है और साथ में timeoutMsForNonInteractive को भी सेट किया जा सकता है. इससे पेज को किसी भी तरह के रीडायरेक्ट करने का मौका मिलता है.

  • timeoutMsForNonInteractive

    नंबर ज़रूरी नहीं

    Chrome 113 और इसके बाद के वर्शन

    launchWebAuthFlow ज़्यादा से ज़्यादा समय, मिलीसेकंड में, नॉन-इंटरैक्टिव मोड में चल सकता है. यह सिर्फ़ तब लागू होगा, जब interactive false हो.

  • यूआरएल

    स्ट्रिंग

    वह यूआरएल जिससे पुष्टि करने की प्रक्रिया शुरू होती है.

तरीके

clearAllCachedAuthTokens()

प्रॉमिस Chrome 87+
chrome.identity.clearAllCachedAuthTokens(
  callback?: function,
)

Identity API की स्थिति को रीसेट करता है:

  • टोकन की कैश मेमोरी से सभी OAuth2 ऐक्सेस टोकन को हटाता है
  • उपयोगकर्ता की खाता प्राथमिकताएं हटा देता है
  • पुष्टि करने की सभी प्रक्रियाओं से उपयोगकर्ता की अनुमति हटाता है

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    ()=>void

रिटर्न

  • Promise<void>

    Chrome 106 और इसके बाद के वर्शन

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

getAccounts()

Promise डेव चैनल
chrome.identity.getAccounts(
  callback?: function,
)

प्रोफ़ाइल में मौजूद खातों के बारे में जानकारी देने वाले AccountInfo ऑब्जेक्ट की सूची पाएं.

getAccounts सिर्फ़ डेव चैनल पर काम करता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (accounts: AccountInfo[])=>void

रिटर्न

  • Promise<AccountInfo[]>

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

getAuthToken()

वादा
chrome.identity.getAuthToken(
  details?: TokenDetails,
  callback?: function,
)

यह ऐप्लिकेशन, Manifest.json के oauth2 सेक्शन में बताए गए क्लाइंट आईडी और दायरों का इस्तेमाल करके, OAuth2 ऐक्सेस टोकन लेता है.

Identity API, मेमोरी में ऐक्सेस टोकन को कैश मेमोरी में सेव करता है. इसलिए, जब भी टोकन की ज़रूरत हो, तब बिना इंटरैक्टिव तरीके से getAuthToken को कॉल किया जा सकता है. टोकन कैश मेमोरी, डेटा की समयसीमा खत्म होने के समय को अपने-आप मैनेज करती है.

अच्छे उपयोगकर्ता अनुभव के लिए, यह ज़रूरी है कि आपके ऐप्लिकेशन में यूज़र इंटरफ़ेस (यूआई) से इंटरैक्टिव टोकन अनुरोध भेजे जाएं. इससे यह पता चलता है कि अनुमति देने का मकसद क्या है. ऐसा न करने पर, आपके उपयोगकर्ताओं को अनुमति देने के अनुरोध मिलेंगे. इसके अलावा, अगर उन्होंने बिना कॉन्टेक्स्ट के साइन इन नहीं किया है, तो उन्हें Chrome की साइन इन स्क्रीन पर साइन इन करने के लिए कहा जाएगा. खास तौर पर, जब आपका ऐप्लिकेशन पहली बार लॉन्च हुआ हो, तो getAuthToken का इस्तेमाल इंटरैक्टिव तरीके से न करें.

ध्यान दें: कॉलबैक के साथ कॉल किए जाने पर, किसी ऑब्जेक्ट को लौटाने के बजाय यह फ़ंक्शन, कॉलबैक को पास किए गए अलग-अलग आर्ग्युमेंट के रूप में दो प्रॉपर्टी दिखाएगा.

पैरामीटर

  • विवरण

    TokenDetails ज़रूरी नहीं

    टोकन के विकल्प.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (result: GetAuthTokenResult)=>void

    • नतीजा
      Chrome 105 और इसके बाद के वर्शन

रिटर्न

  • Chrome 105 और इसके बाद के वर्शन

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

getProfileUserInfo()

वादा
chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
  callback?: function,
)

प्रोफ़ाइल में साइन इन करने वाले उपयोगकर्ता का ईमेल पता और अस्पष्ट GAIA आईडी वापस लाता है.

इसके लिए, identity.email मेनिफ़ेस्ट की अनुमति ज़रूरी है. ऐसा न होने पर, कोई नतीजा नहीं मिलता.

यह एपीआई Identity.getAccounts से दो तरह से अलग है. दी गई जानकारी ऑफ़लाइन उपलब्ध होती है और यह सिर्फ़ प्रोफ़ाइल के मुख्य खाते पर लागू होती है.

पैरामीटर

  • विवरण

    ProfileDetails ज़रूरी नहीं

    Chrome 84+

    प्रोफ़ाइल के विकल्प.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (userInfo: ProfileUserInfo)=>void

रिटर्न

  • Chrome 106 और इसके बाद के वर्शन

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

getRedirectURL()

chrome.identity.getRedirectURL(
  path?: string,
)

launchWebAuthFlow में इस्तेमाल करने के लिए, दूसरा वेबलिंक जनरेट करता है.

जनरेट किए गए यूआरएल, https://<app-id>.chromiumapp.org/* पैटर्न से मेल खाते हैं.

पैरामीटर

  • पाथ

    स्ट्रिंग ज़रूरी नहीं

    पाथ, जनरेट किए गए यूआरएल के आखिर में जोड़ा गया होता है.

रिटर्न

  • स्ट्रिंग

launchWebAuthFlow()

वादा
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)

बताए गए यूआरएल पर पुष्टि करने की प्रक्रिया शुरू करता है.

यह तरीका, वेब व्यू लॉन्च करके और सेवा देने वाली कंपनी के पुष्टि करने वाले फ़्लो में पहले यूआरएल पर नेविगेट करके, Google से बाहर के आइडेंटिटी प्रोवाइडर के साथ ऑथेंट फ़्लो को चालू करता है. जब सेवा देने वाली कंपनी, https://<app-id>.chromiumapp.org/* पैटर्न से मेल खाने वाले यूआरएल पर रीडायरेक्ट करती है, तो विंडो बंद हो जाएगी और फ़ाइनल रीडायरेक्ट यूआरएल callback फ़ंक्शन को पास कर दिया जाएगा.

अच्छे उपयोगकर्ता अनुभव के लिए यह ज़रूरी है कि आपके ऐप्लिकेशन में यूज़र इंटरफ़ेस (यूआई) से, इंटरैक्टिव तरीके से पुष्टि करने की प्रक्रिया शुरू की जाए. इससे यह पता चलता है कि अनुमति किस काम के लिए है. ऐसा न करने पर, आपके उपयोगकर्ताओं को बिना किसी कॉन्टेक्स्ट के अनुमति देने के अनुरोध मिलेंगे. खास तौर पर, जब आपका ऐप्लिकेशन पहली बार लॉन्च हुआ हो, तो पुष्टि करने का एक इंटरैक्टिव फ़्लो लॉन्च न करें.

पैरामीटर

  • विवरण

    WebAuth फ़्लो के विकल्प.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    (responseUrl?: string)=>void

    • responseUrl

      स्ट्रिंग ज़रूरी नहीं

रिटर्न

  • प्रॉमिस<string|undefined>

    Chrome 106 और इसके बाद के वर्शन

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

removeCachedAuthToken()

वादा
chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
  callback?: function,
)

पहचान एपीआई के टोकन कैश से OAuth2 ऐक्सेस टोकन को हटाता है.

अगर किसी ऐक्सेस टोकन के अमान्य होने का पता चलता है, तो उसे कैश मेमोरी से हटाने के लिए, remove cachedAuthToken को पास किया जाना चाहिए. इसके बाद, ऐप्लिकेशन getAuthToken से नया टोकन हासिल कर सकता है.

पैरामीटर

  • विवरण

    टोकन की जानकारी.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

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

    ()=>void

रिटर्न

  • Promise<void>

    Chrome 106 और इसके बाद के वर्शन

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

इवेंट

onSignInChanged

chrome.identity.onSignInChanged.addListener(
  callback: function,
)

उपयोगकर्ता की प्रोफ़ाइल पर किसी खाते के लिए साइन इन की स्थिति बदलने पर सक्रिय होता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (account: AccountInfo,signedIn: boolean)=>void