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 ज़रूरी नहीं है

    उस खाते का आईडी जिसका टोकन वापस पाना है. अगर कोई खाता नहीं चुना जाता है, तो फ़ंक्शन 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 या इसके बाद का वर्शन

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

getProfileUserInfo()

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

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

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

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

पैरामीटर

  • विवरण

    ProfileDetails optional

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

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

रिटर्न

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

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

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