browser.identity

ब्यौरा

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

अनुमतियां

identity

टाइप

AccountInfo

प्रॉपर्टी

  • आईडी

    स्ट्रिंग

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

AccountStatus

Chrome 84+ browser.* Chrome 148 से

Enum

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

"ANY"
इससे पता चलता है कि कोई प्राइमरी खाता मौजूद है या नहीं.

GetAuthTokenResult

Chrome 105+ Chrome 148 से browser.*

प्रॉपर्टी

  • grantedScopes

    string[] ज़रूरी नहीं

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

  • टोकन

    string ज़रूरी नहीं

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

InvalidTokenDetails

प्रॉपर्टी

  • टोकन

    स्ट्रिंग

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

ProfileDetails

Chrome 84+ browser.* Chrome 148 से

प्रॉपर्टी

  • accountStatus

    AccountStatus ज़रूरी नहीं

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

ProfileUserInfo

प्रॉपर्टी

  • ईमेल

    स्ट्रिंग

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

  • आईडी

    स्ट्रिंग

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

TokenDetails

प्रॉपर्टी

  • खाता

    AccountInfo ज़रूरी नहीं

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

  • enableGranularPermissions

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

    Chrome 87+ browser.* Chrome 148 से

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

  • इंटरैक्टिव

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

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

  • स्कोप

    string[] ज़रूरी नहीं

    अनुरोध किए जाने वाले OAuth2 स्कोप की सूची.

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

WebAuthFlowDetails

प्रॉपर्टी

  • abortOnLoadForNonInteractive

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

    Chrome 113+ Chrome 148 से browser.*

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

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

  • इंटरैक्टिव

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

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

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

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

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

  • timeoutMsForNonInteractive

    number ज़रूरी नहीं

    Chrome 113+ Chrome 148 से browser.*

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

  • url

    स्ट्रिंग

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

तरीके

clearAllCachedAuthTokens()

Chrome 87+ browser.* Chrome 148 से
browser.identity.clearAllCachedAuthTokens(): Promise<void>

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

  • टोकन कैश मेमोरी से सभी OAuth2 ऐक्सेस टोकन हटाता है
  • उपयोगकर्ता के खाते की सेटिंग हटाता है
  • उपयोगकर्ता को सभी ऑथराइज़ेशन फ़्लो से हटा देता है

रिटर्न

  • वादा<शून्य>

    Chrome 106 और इसके बाद के वर्शन Chrome 148 से browser.*

    यह एक प्रॉमिस दिखाता है, जो स्थिति साफ़ होने पर रिज़ॉल्व हो जाता है.

getAccounts()

डेव चैनल
browser.identity.getAccounts(): Promise<AccountInfo[]>

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

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

रिटर्न

getAuthToken()

browser.identity.getAuthToken(
  details?: TokenDetails,
)
: Promise<GetAuthTokenResult>

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

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

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

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

पैरामीटर

  • विवरण

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

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

रिटर्न

  • Chrome 105+ Chrome 148 से browser.*

    यह एक प्रॉमिस दिखाता है, जो मेनिफ़ेस्ट के मुताबिक OAuth2 ऐक्सेस टोकन के साथ रिज़ॉल्व होता है. अगर कोई गड़बड़ी होती है, तो यह अस्वीकार कर देता है. grantedScopes पैरामीटर, Chrome 87 के बाद से पॉप्युलेट किया जाता है. उपलब्ध होने पर, इस पैरामीटर में, दिए गए टोकन के हिसाब से अनुमति वाले स्कोप की सूची होती है.

getProfileUserInfo()

browser.identity.getProfileUserInfo(
  details?: ProfileDetails,
)
: Promise<ProfileUserInfo>

यह किसी प्रोफ़ाइल में साइन इन किए हुए उपयोगकर्ता का ईमेल पता और छिपा हुआ GAIA आईडी हासिल करता है.

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

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

पैरामीटर

  • विवरण

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

    Chrome 84+ browser.* Chrome 148 से

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

रिटर्न

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

    यह एक प्रॉमिस दिखाता है, जो Chrome के प्राइमरी खाते के ProfileUserInfo के साथ रिज़ॉल्व होता है. अगर दिए गए details वाला खाता मौजूद नहीं है, तो यह खाली ProfileUserInfo दिखाता है.

getRedirectURL()

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

launchWebAuthFlow में इस्तेमाल करने के लिए, रीडायरेक्ट यूआरएल जनरेट करता है.

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

पैरामीटर

  • पाथ

    string ज़रूरी नहीं

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

रिटर्न

  • स्ट्रिंग

launchWebAuthFlow()

browser.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
)
: Promise<string | undefined>

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

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

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

पैरामीटर

रिटर्न

  • Promise<string | undefined>

    Chrome 106 और इसके बाद के वर्शन Chrome 148 से browser.*

    यह एक प्रॉमिस दिखाता है, जो आपके ऐप्लिकेशन पर रीडायरेक्ट किए गए यूआरएल के साथ रिज़ॉल्व होता है.

removeCachedAuthToken()

browser.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
)
: Promise<void>

यह Identity API के टोकन कैश से, OAuth2 ऐक्सेस टोकन को हटाता है.

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

पैरामीटर

रिटर्न

  • वादा<शून्य>

    Chrome 106 और इसके बाद के वर्शन Chrome 148 से browser.*

    यह एक प्रॉमिस दिखाता है, जो टोकन को कैश मेमोरी से हटाए जाने पर रिज़ॉल्व हो जाता है.

इवेंट

onSignInChanged

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

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