ब्यौरा
OAuth2 ऐक्सेस टोकन पाने के लिए, chrome.identity एपीआई का इस्तेमाल करें.
अनुमतियां
identityटाइप
AccountInfo
प्रॉपर्टी
-
आईडी
स्ट्रिंग
खाते के लिए यूनीक आइडेंटिफ़ायर. यह आईडी, खाते के लाइफ़टाइम के लिए नहीं बदलेगा.
AccountStatus
Enum
"SYNC"
इससे पता चलता है कि मुख्य खाते के लिए, सिंक करने की सुविधा चालू है.
"ANY"
इससे पता चलता है कि कोई प्राइमरी खाता मौजूद है या नहीं.
GetAuthTokenResult
प्रॉपर्टी
-
grantedScopes
string[] ज़रूरी नहीं
एक्सटेंशन को दिए गए OAuth2 स्कोप की सूची.
-
टोकन
string ज़रूरी नहीं
अनुरोध से जुड़ा खास टोकन.
InvalidTokenDetails
प्रॉपर्टी
-
टोकन
स्ट्रिंग
वह टोकन जिसे कैश मेमोरी से हटाना है.
ProfileDetails
प्रॉपर्टी
-
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()
browser.identity.clearAllCachedAuthTokens(): Promise<void>
इससे Identity API की स्थिति रीसेट हो जाती है:
- टोकन कैश मेमोरी से सभी OAuth2 ऐक्सेस टोकन हटाता है
- उपयोगकर्ता के खाते की सेटिंग हटाता है
- उपयोगकर्ता को सभी ऑथराइज़ेशन फ़्लो से हटा देता है
रिटर्न
-
वादा<शून्य>
Chrome 106 और इसके बाद के वर्शन Chrome 148 से browser.*यह एक प्रॉमिस दिखाता है, जो स्थिति साफ़ होने पर रिज़ॉल्व हो जाता है.
getAccounts()
browser.identity.getAccounts(): Promise<AccountInfo[]>
इससे AccountInfo ऑब्जेक्ट की सूची मिलती है. इसमें प्रोफ़ाइल पर मौजूद खातों की जानकारी होती है.
getAccounts सिर्फ़ डेव चैनल पर काम करता है.
रिटर्न
-
Promise<AccountInfo[]>
getAuthToken()
browser.identity.getAuthToken(
details?: TokenDetails,
): Promise<GetAuthTokenResult>
यह oauth2 सेक्शन में दिए गए क्लाइंट आईडी और स्कोप का इस्तेमाल करके, OAuth2 ऐक्सेस टोकन हासिल करता है. यह सेक्शन, manifest.json में मौजूद होता है.
Identity API, ऐक्सेस टोकन को मेमोरी में कैश करता है. इसलिए, जब भी टोकन की ज़रूरत हो, तब getAuthToken को नॉन-इंटरैक्टिव तरीके से कॉल किया जा सकता है. टोकन कैश मेमोरी, समयसीमा खत्म होने की प्रोसेस को अपने-आप मैनेज करती है.
उपयोगकर्ता को बेहतर अनुभव देने के लिए, यह ज़रूरी है कि इंटरैक्टिव टोकन के अनुरोध, आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) से शुरू किए जाएं. साथ ही, यह बताया जाए कि अनुमति किस लिए मांगी जा रही है. ऐसा न करने पर, आपके उपयोगकर्ताओं को अनुमति देने के अनुरोध मिलेंगे. इसके अलावा, अगर उन्होंने साइन इन नहीं किया है, तो उन्हें Chrome में साइन इन करने की स्क्रीन दिखेंगी. हालांकि, उन्हें यह नहीं बताया जाएगा कि ऐसा क्यों हो रहा है. खास तौर पर, जब आपका ऐप्लिकेशन पहली बार लॉन्च किया जाए, तब getAuthToken का इस्तेमाल इंटरैक्टिव तरीके से न करें.
ध्यान दें: कॉलबैक के साथ कॉल किए जाने पर, यह फ़ंक्शन कोई ऑब्जेक्ट दिखाने के बजाय, कॉलबैक को पास किए गए अलग-अलग आर्ग्युमेंट के तौर पर दो प्रॉपर्टी दिखाएगा.
पैरामीटर
-
विवरण
TokenDetails ज़रूरी नहीं है
टोकन के विकल्प.
रिटर्न
-
Promise<GetAuthTokenResult>
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 सेप्रोफ़ाइल के विकल्प.
रिटर्न
-
Promise<ProfileUserInfo>
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 फ़ंक्शन को पास कर दिया जाएगा.
उपयोगकर्ता को बेहतर अनुभव देने के लिए, यह ज़रूरी है कि आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) से इंटरैक्टिव ऑथराइज़ेशन फ़्लो शुरू किए जाएं. इससे उपयोगकर्ता को यह समझने में मदद मिलती है कि अनुमति किस लिए मांगी जा रही है. ऐसा न करने पर, आपके उपयोगकर्ताओं को बिना किसी संदर्भ के अनुमति के अनुरोध मिलेंगे. खास तौर पर, जब आपका ऐप्लिकेशन पहली बार लॉन्च किया जाए, तब इंटरैक्टिव ऑथराइज़ेशन फ़्लो लॉन्च न करें.
पैरामीटर
-
विवरण
WebAuth फ़्लो के विकल्प.
रिटर्न
-
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
-
खाता
-
signedIn
बूलियन
-