ब्यौरा
OAuth2 ऐक्सेस टोकन पाने के लिए, chrome.identity API का इस्तेमाल करें.
अनुमतियां
identityटाइप
AccountInfo
प्रॉपर्टी
-
आईडी
स्ट्रिंग
खाते के लिए यूनीक आइडेंटिफ़ायर. यह आईडी, खाते के बंद होने तक नहीं बदलेगा.
AccountStatus
Enum
"SYNC"
इससे पता चलता है कि मुख्य खाते के लिए सिंक करने की सुविधा चालू है.
"ANY"
इससे यह पता चलता है कि कोई प्राइमरी खाता मौजूद है या नहीं.
GetAuthTokenResult
प्रॉपर्टी
-
grantedScopes
string[] ज़रूरी नहीं है
एक्सटेंशन को दी गई OAuth2 स्कोप की सूची.
-
टोकन
string ज़रूरी नहीं है
अनुरोध से जुड़ा खास टोकन.
InvalidTokenDetails
प्रॉपर्टी
-
टोकन
स्ट्रिंग
वह टोकन जिसे कैश मेमोरी से हटाना है.
ProfileDetails
प्रॉपर्टी
-
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को कुल मिलाकर, ज़्यादा से ज़्यादा इतने समय तक नॉन-इंटरैक्टिव मोड में चलने की अनुमति है. यह समय मिलीसेकंड में होता है. यह सिर्फ़ तब काम करता है, जबinteractivefalseहो. -
url
स्ट्रिंग
वह यूआरएल जो पुष्टि करने की प्रोसेस शुरू करता है.
तरीके
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
): Promise<void>
यह कुकी, Identity API की स्थिति को रीसेट करती है:
- यह फ़ंक्शन, टोकन कैश मेमोरी से सभी OAuth2 ऐक्सेस टोकन हटाता है
- यह कुकी, उपयोगकर्ता के खाते की सेटिंग को हटाती है
- यह कुकी, उपयोगकर्ता को सभी पुष्टि करने वाले फ़्लो से हटा देती है
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 106 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
): Promise<AccountInfo[]>
यह प्रोफ़ाइल में मौजूद खातों के बारे में बताने वाले AccountInfo ऑब्जेक्ट की सूची वापस लाता है.
getAccounts सिर्फ़ देव चैनल पर काम करता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:(accounts: AccountInfo[]) => void
-
खाते
-
रिटर्न
-
Promise<AccountInfo[]>
प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
): Promise<GetAuthTokenResult>
यह manifest.json के oauth2 सेक्शन में दिए गए क्लाइंट आईडी और स्कोप का इस्तेमाल करके, OAuth2 ऐक्सेस टोकन हासिल करता है.
Identity API, ऐक्सेस टोकन को मेमोरी में कैश मेमोरी के तौर पर सेव करता है. इसलिए, जब भी टोकन की ज़रूरत हो, getAuthToken को बिना किसी इंटरैक्शन के कॉल किया जा सकता है. टोकन कैश में, समयसीमा खत्म होने की प्रोसेस अपने-आप मैनेज होती है.
उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, यह ज़रूरी है कि इंटरैक्टिव टोकन के अनुरोध, आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) से शुरू किए जाएं. साथ ही, यूज़र इंटरफ़ेस (यूआई) में यह बताया गया हो कि अनुमति किस काम के लिए मांगी जा रही है. ऐसा न करने पर, आपके उपयोगकर्ताओं को अनुमति के अनुरोध मिलेंगे. इसके अलावा, अगर वे साइन इन नहीं हैं, तो उन्हें Chrome में साइन इन करने की स्क्रीन दिखेगी. हालांकि, उन्हें इस बारे में कोई जानकारी नहीं मिलेगी. खास तौर पर, जब आपका ऐप्लिकेशन पहली बार लॉन्च किया जाता है, तब इंटरैक्टिव तरीके से getAuthToken का इस्तेमाल न करें.
ध्यान दें: कॉलबैक के साथ कॉल किए जाने पर, यह फ़ंक्शन ऑब्जेक्ट को वापस भेजने के बजाय, कॉलबैक को अलग-अलग आर्ग्युमेंट के तौर पर दो प्रॉपर्टी वापस भेजेगा.
पैरामीटर
-
विवरण
TokenDetails optional
टोकन के विकल्प.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:(result: GetAuthTokenResult) => void
-
नतीजाChrome 105 या इसके बाद का वर्शन
-
रिटर्न
-
Promise<GetAuthTokenResult>
Chrome 105 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
): Promise<ProfileUserInfo>
यह कुकी, किसी प्रोफ़ाइल में साइन इन किए गए उपयोगकर्ता का ईमेल पता और छिपाया गया Gaia आईडी वापस पाती है.
इसके लिए, identity.email मेनिफ़ेस्ट की अनुमति ज़रूरी है. ऐसा न होने पर, कोई नतीजा नहीं मिलता.
यह एपीआई, identity.getAccounts से दो तरह से अलग है. जवाब में मिली जानकारी ऑफ़लाइन उपलब्ध होती है. साथ ही, यह सिर्फ़ प्रोफ़ाइल के मुख्य खाते पर लागू होती है.
पैरामीटर
-
विवरण
ProfileDetails ज़रूरी नहीं है
Chrome 84 या इसके बाद का वर्शनप्रोफ़ाइल के विकल्प.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:(userInfo: ProfileUserInfo) => void
-
userInfo
-
रिटर्न
-
Promise<ProfileUserInfo>
Chrome 106 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
): string
यह रीडायरेक्ट यूआरएल जनरेट करता है, जिसका इस्तेमाल launchWebAuthFlow में किया जाता है.
जनरेट किए गए यूआरएल, https://<app-id>.chromiumapp.org/* पैटर्न से मेल खाते हों.
पैरामीटर
-
पाथ
string ज़रूरी नहीं है
जनरेट किए गए यूआरएल के आखिर में जोड़ा गया पाथ.
रिटर्न
-
स्ट्रिंग
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
): Promise<string | undefined>
यह कुकी, दिए गए यूआरएल पर पुष्टि करने की प्रोसेस शुरू करती है.
इस तरीके से, Google के अलावा अन्य आइडेंटिटी प्रोवाइडर के साथ पुष्टि करने की प्रोसेस को चालू किया जा सकता है. इसके लिए, वेब व्यू लॉन्च किया जाता है और उसे प्रोवाइडर की पुष्टि करने की प्रोसेस के पहले यूआरएल पर ले जाया जाता है. जब प्रोवाइडर, https://<app-id>.chromiumapp.org/* पैटर्न से मेल खाने वाले यूआरएल पर रीडायरेक्ट करता है, तो विंडो बंद हो जाएगी. साथ ही, फ़ाइनल रीडायरेक्ट यूआरएल को callback फ़ंक्शन में पास कर दिया जाएगा.
उपयोगकर्ता को बेहतर अनुभव देने के लिए, यह ज़रूरी है कि आपके ऐप्लिकेशन में यूज़र इंटरफ़ेस (यूआई) से इंटरैक्टिव पुष्टि करने की प्रोसेस शुरू की जाए. साथ ही, यह बताया जाए कि पुष्टि किस लिए की जा रही है. ऐसा न करने पर, आपके उपयोगकर्ताओं को बिना किसी कॉन्टेक्स्ट के अनुमति पाने के अनुरोध मिलेंगे. खास तौर पर, ऐप्लिकेशन को पहली बार लॉन्च करने पर, पुष्टि करने के लिए इंटरैक्टिव फ़्लो लॉन्च न करें.
पैरामीटर
-
विवरण
WebAuth फ़्लो के विकल्प.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:(responseUrl?: string) => void
-
responseUrl
string ज़रूरी नहीं है
-
रिटर्न
-
Promise<string | undefined>
Chrome 106 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
): Promise<void>
यह कुकी, Identity API के टोकन कैश मेमोरी से OAuth2 ऐक्सेस टोकन हटाती है.
अगर कोई ऐक्सेस टोकन अमान्य पाया जाता है, तो उसे removeCachedAuthToken को पास किया जाना चाहिए, ताकि उसे कैश मेमोरी से हटाया जा सके. इसके बाद, ऐप्लिकेशन getAuthToken की मदद से नया टोकन वापस पा सकता है.
पैरामीटर
-
विवरण
टोकन की जानकारी.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callbackपैरामीटर ऐसा दिखता है:() => void
रिटर्न
-
Promise<void>
Chrome 106 और इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.
इवेंट
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब उपयोगकर्ता की प्रोफ़ाइल पर किसी खाते के साइन इन की स्थिति बदलती है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(account: AccountInfo, signedIn: boolean) => void
-
खाता
-
signedIn
बूलियन
-