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