chrome.identity

ब्यौरा

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

अनुमतियां

identity

टाइप

AccountInfo

प्रॉपर्टी

  • आईडी

    स्ट्रिंग

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

AccountStatus

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

Enum

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

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

GetAuthTokenResult

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

प्रॉपर्टी

  • grantedScopes

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

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

  • टोकन

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

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

InvalidTokenDetails

प्रॉपर्टी

  • टोकन

    स्ट्रिंग

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

ProfileDetails

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

प्रॉपर्टी

  • accountStatus

    AccountStatus optional

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

ProfileUserInfo

प्रॉपर्टी

  • ईमेल

    स्ट्रिंग

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

  • आईडी

    स्ट्रिंग

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

TokenDetails

प्रॉपर्टी

  • खाता

    AccountInfo optional

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

  • enableGranularPermissions

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

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

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

  • इंटरैक्टिव

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

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

  • स्कोप

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

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

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

WebAuthFlowDetails

प्रॉपर्टी

  • abortOnLoadForNonInteractive

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

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

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

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

  • इंटरैक्टिव

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

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

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

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

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

  • timeoutMsForNonInteractive

    number ज़रूरी नहीं

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

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

  • url

    स्ट्रिंग

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

तरीके

clearAllCachedAuthTokens()

Chrome 87 या इसके बाद के वर्शन
chrome.identity.clearAllCachedAuthTokens(): Promise<void>

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

  • यह फ़ंक्शन, टोकन कैश मेमोरी से सभी OAuth2 ऐक्सेस टोकन हटाता है
  • यह कुकी, उपयोगकर्ता के खाते की सेटिंग को हटाती है
  • यह कुकी, उपयोगकर्ता को सभी पुष्टि करने वाले फ़्लो से हटा देती है

रिटर्न

  • Promise<void>

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

getAccounts()

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

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

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

रिटर्न

getAuthToken()

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

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

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

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

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

पैरामीटर

  • विवरण

    TokenDetails optional

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

रिटर्न

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

getProfileUserInfo()

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

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

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

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

पैरामीटर

  • विवरण

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

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

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

रिटर्न

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

getRedirectURL()

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

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

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

पैरामीटर

  • पाथ

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

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

रिटर्न

  • स्ट्रिंग

launchWebAuthFlow()

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

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

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

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

पैरामीटर

रिटर्न

  • Promise<string | undefined>

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

removeCachedAuthToken()

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

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

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

पैरामीटर

रिटर्न

  • Promise<void>

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

इवेंट

onSignInChanged

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

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