תיאור
משתמשים ב-chrome.identity API כדי לקבל אסימוני גישה מסוג OAuth2.
הרשאות
identityסוגים
AccountInfo
מאפיינים
-
id [מזהה]
מחרוזת
מזהה ייחודי של החשבון. המזהה הזה לא ישתנה במהלך חיי החשבון.
AccountStatus
Enum
SYNC
מציין שהסנכרון מופעל בחשבון הראשי.
ANY
מציין את קיומו של חשבון ראשי, אם יש כזה.
GetAuthTokenResult
מאפיינים
-
grantedScopes
string[] אופציונלי
רשימה של היקפי הרשאות של OAuth2 שניתנו לתוסף.
-
token
מחרוזת אופציונלי
האסימון הספציפי שמשויך לבקשה.
InvalidTokenDetails
מאפיינים
-
token
מחרוזת
הטוקן הספציפי שצריך להסיר מהמטמון.
ProfileDetails
מאפיינים
-
accountStatus
AccountStatus אופציונלי
סטטוס החשבון הראשי שאליו מחובר פרופיל שצריך להחזיר את
ProfileUserInfoשלו. ברירת המחדל היא סטטוס החשבוןSYNC.
ProfileUserInfo
מאפיינים
-
אימייל
מחרוזת
כתובת אימייל של חשבון המשתמש שמחובר לפרופיל הנוכחי. השדה ריק אם המשתמש לא מחובר או אם הרשאת המניפסט
identity.emailלא צוינה. -
id [מזהה]
מחרוזת
מזהה ייחודי של החשבון. המזהה הזה לא ישתנה במהלך חיי החשבון. השדה ריק אם המשתמש לא מחובר לחשבון או אם (בגרסה M41 ואילך) לא צוינה הרשאת המניפסט
identity.email.
TokenDetails
מאפיינים
-
חשבון
AccountInfo אופציונלי
מזהה החשבון שאסימון הגישה שלו צריך להיות מוחזר. אם לא מציינים חשבון, הפונקציה תשתמש בחשבון מהפרופיל של Chrome: חשבון הסנכרון אם יש כזה, או החשבון הראשון של Google באינטרנט.
-
enableGranularPermissions
boolean אופציונלי
Chrome 87 ואילךהדגל
enableGranularPermissionsמאפשר לתוספים להצטרף מוקדם למסך ההסכמה להרשאות גרנולריות, שבו מאשרים או דוחים כל הרשאה בנפרד. -
אינטראקטיבי
boolean אופציונלי
יכול להיות שיהיה צורך שהמשתמש ייכנס ל-Chrome או יאשר את היקפי הגישה שהאפליקציה מבקשת כדי לאחזר אסימון. אם הדגל האינטראקטיבי הוא
true, המשתמש יקבל הנחיה מ-getAuthTokenלפי הצורך. אם הדגל הואfalseאו שהוא לא מצוין, הפונקציהgetAuthTokenתחזיר שגיאה בכל פעם שתידרש הנחיה. -
היקפים
string[] אופציונלי
רשימה של היקפי הרשאות OAuth2 לבקשה.
אם השדה
scopesקיים, הוא מבטל את רשימת ההיקפים שצוינה בקובץ manifest.json.
WebAuthFlowDetails
מאפיינים
-
abortOnLoadForNonInteractive
boolean אופציונלי
Chrome 113 ואילךהאם להפסיק את
launchWebAuthFlowלבקשות לא אינטראקטיביות אחרי טעינת הדף. הפרמטר הזה לא משפיע על תהליכים אינטראקטיביים.אם ההגדרה היא
true(ברירת מחדל), התהליך יסתיים מיד אחרי שהדף ייטען. אם ההגדרה היאfalse, התהליך יסתיים רק אחרי שtimeoutMsForNonInteractiveיחלוף. ההגדרה הזו שימושית לספקי זהויות שמשתמשים ב-JavaScript כדי לבצע הפניות אוטומטיות אחרי שהדף נטען. -
אינטראקטיבי
boolean אופציונלי
האם להפעיל את תהליך האימות במצב אינטראקטיבי.
מכיוון שחלק מתהליכי האימות עשויים להפנות באופן מיידי לכתובת URL של תוצאה,
launchWebAuthFlowמסתיר את תצוגת האינטרנט שלו עד שההפניה הראשונה מפנה לכתובת ה-URL הסופית, או עד שטעינת הדף שמיועד להצגה מסתיימת.אם הדגל
interactiveהואtrue, החלון יוצג כשטעינת הדף תסתיים. אם הדגל הואfalseאו שהוא מושמט, הפונקציהlaunchWebAuthFlowתחזיר שגיאה אם הניווט הראשוני לא ישלים את התהליך.בתהליכים שמשתמשים ב-JavaScript להפניה אוטומטית, אפשר להגדיר את
abortOnLoadForNonInteractiveלערךfalseבשילוב עם הגדרתtimeoutMsForNonInteractive, כדי לתת לדף הזדמנות לבצע הפניות אוטומטיות. -
timeoutMsForNonInteractive
מספר אופציונלי
Chrome 113 ואילךמשך הזמן המקסימלי, באלפיות השנייה, שמוקצה ל-
launchWebAuthFlowלפעולה במצב לא אינטראקטיבי הואlaunchWebAuthFlow. המדיניות הזו תקפה רק אם המדיניותinteractiveמוגדרת כ-false. -
כתובת אתר
מחרוזת
כתובת ה-URL שמפעילה את תהליך האימות.
Methods
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(): Promise<void>
איפוס המצב של Identity API:
- הסרה של כל אסימוני הגישה מסוג OAuth2 ממטמון האסימונים
- הסרת ההעדפות של חשבון המשתמש
- ביטול ההרשאה של המשתמש מכל תהליכי האימות
החזרות
-
Promise<void>
Chrome 106 ואילךמחזירה Promise שמושלם כשהמצב נוקה.
getAccounts()
chrome.identity.getAccounts(): Promise<AccountInfo[]>
מאחזר רשימה של אובייקטים מסוג AccountInfo שמתארים את החשבונות שקיימים בפרופיל.
האפליקציה getAccounts נתמכת רק בערוץ הפיתוח.
החזרות
-
Promise<AccountInfo[]>
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
): Promise<GetAuthTokenResult>
מקבל טוקן גישה של OAuth2 באמצעות מזהה הלקוח וההיקפים שצוינו בקטע oauth2 של manifest.json.
Identity API שומר במטמון אסימוני גישה בזיכרון, כך שאפשר לקרוא ל-getAuthToken באופן לא אינטראקטיבי בכל פעם שנדרש אסימון. המטמון של הטוקנים מטפל באופן אוטומטי בתפוגה.
כדי לספק חוויית משתמש טובה, חשוב שבקשות לאסימוני אינטראקציה יופעלו על ידי ממשק משתמש באפליקציה, עם הסבר לגבי ההרשאה. אם לא תעשו את זה, המשתמשים יקבלו בקשות הרשאה או מסכי כניסה ל-Chrome אם הם לא מחוברים, ללא הקשר. בפרט, אל תשתמשו ב-getAuthToken באופן אינטראקטיבי כשהאפליקציה מופעלת בפעם הראשונה.
הערה: כשמפעילים את הפונקציה עם קריאה חוזרת, במקום להחזיר אובייקט, היא מחזירה את שני המאפיינים כארגומנטים נפרדים שמועברים לקריאה החוזרת.
פרמטרים
-
פרטים
TokenDetails אופציונלי
אפשרויות של אסימונים.
החזרות
-
Promise<GetAuthTokenResult>
Chrome 105 ואילךהפונקציה מחזירה Promise שמושלם עם אסימון גישה מסוג OAuth2 כפי שצוין בקובץ המניפסט, או נדחה אם הייתה שגיאה. הפרמטר
grantedScopesמאוכלס החל מגרסה Chrome 87. אם יש אפשרות כזו, הפרמטר הזה מכיל את רשימת ההיקפים שהוענקו שמתאימים לטוקן שהוחזר.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
): Promise<ProfileUserInfo>
מאחזר את כתובת האימייל ואת מזהה GAIA המוסתר של המשתמש שמחובר לפרופיל.
נדרשת הרשאת המניפסט identity.email. אחרת, הפונקציה מחזירה תוצאה ריקה.
יש שני הבדלים בין ה-API הזה לבין identity.getAccounts. המידע שמוחזר זמין אופליין, והוא רלוונטי רק לחשבון הראשי של הפרופיל.
פרמטרים
-
פרטים
ProfileDetails אופציונלי
Chrome 84 ואילךאפשרויות הפרופיל.
החזרות
-
Promise<ProfileUserInfo>
Chrome 106 ואילךהפונקציה מחזירה Promise שמוביל ל-
ProfileUserInfoשל החשבון הראשי ב-Chrome, או ל-ProfileUserInfoריק אם החשבון עםdetailsהנתון לא קיים.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
): string
יוצר כתובת URL להפניה אוטומטית לשימוש ב-launchWebAuthFlow.
כתובות ה-URL שנוצרו תואמות לתבנית https://<app-id>.chromiumapp.org/*.
פרמטרים
-
נתיב
מחרוזת אופציונלי
הנתיב שמצורף לסוף כתובת ה-URL שנוצרה.
החזרות
-
מחרוזת
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
): Promise<string | undefined>
מתחיל תהליך אימות בכתובת ה-URL שצוינה.
השיטה הזו מאפשרת תהליכי אימות עם ספקי זהויות שאינם של Google. היא מפעילה תצוגת אינטרנט ומעבירה אותה לכתובת ה-URL הראשונה בתהליך האימות של הספק. כשהספק מפנה לכתובת URL שתואמת לתבנית https://<app-id>.chromiumapp.org/*, החלון ייסגר וכתובת ה-URL הסופית להפניה תועבר לפונקציה callback.
כדי לספק חוויית משתמש טובה, חשוב שממשק המשתמש באפליקציה יציג הסבר על מהות ההרשאה לפני שמתחילים בתהליכי אימות אינטראקטיביים. אם לא תעשו את זה, המשתמשים יקבלו בקשות הרשאה ללא הקשר. בפרט, אל תפעילו תהליך אימות אינטראקטיבי כשהאפליקציה מופעלת בפעם הראשונה.
פרמטרים
-
פרטים
אפשרויות של תהליך WebAuth.
החזרות
-
Promise<string | undefined>
Chrome 106 ואילךהפונקציה מחזירה Promise שמוביל לכתובת ה-URL שהמשתמש מופנה אליה בחזרה לאפליקציה.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
): Promise<void>
הפעולה הזו מסירה אסימון גישה מסוג OAuth2 ממטמון הטוקנים של Identity API.
אם מתגלה שאסימון גישה לא תקין, צריך להעביר אותו אל removeCachedAuthToken כדי להסיר אותו מהמטמון. לאחר מכן האפליקציה יכולה לאחזר טוקן חדש באמצעות getAuthToken.
פרמטרים
-
פרטים
פרטי הטוקן.
החזרות
-
Promise<void>
Chrome 106 ואילךמחזירה הבטחה (Promise) שמושלמת כשהאסימון מוסר מהמטמון.
אירועים
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
האירוע מופעל כשסטטוס הכניסה משתנה בחשבון בפרופיל המשתמש.
פרמטרים
-
callback
פונקציה
הפרמטר
callbackנראה כך:(account: AccountInfo, signedIn: boolean) => void
-
חשבון
-
signedIn
בוליאני
-