תיאור
משתמשים ב-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. המדיניות הזו תקפה רק אם המדיניותinteractiveמוגדרת כ-false. -
כתובת אתר
מחרוזת
כתובת ה-URL שמפעילה את תהליך האימות.
Methods
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>
מקבל אסימון גישה OAuth2 באמצעות מזהה הלקוח וההיקפים שצוינו בקטע oauth2 של manifest.json.
Identity API שומר במטמון את טוקני הגישה בזיכרון, כך שאפשר לקרוא ל-getAuthToken באופן לא אינטראקטיבי בכל פעם שנדרש טוקן. המטמון של הטוקנים מטפל באופן אוטומטי בתפוגה.
כדי לספק חוויית משתמש טובה, חשוב שבקשות לאסימונים אינטראקטיביים יופעלו על ידי ממשק משתמש באפליקציה, עם הסבר לגבי מטרת ההרשאה. אם לא תעשו את זה, המשתמשים יקבלו בקשות הרשאה או מסכי כניסה ל-Chrome אם הם לא מחוברים, ללא הקשר. בפרט, אל תשתמשו ב-getAuthToken באופן אינטראקטיבי כשהאפליקציה מופעלת בפעם הראשונה.
הערה: כשמפעילים את הפונקציה עם קריאה חוזרת, במקום להחזיר אובייקט, הפונקציה מחזירה את שני המאפיינים כארגומנטים נפרדים שמועברים לקריאה החוזרת.
פרמטרים
-
פרטים
TokenDetails אופציונלי
אפשרויות של אסימונים.
החזרות
-
Promise<GetAuthTokenResult>
Chrome 105 ואילך
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
): Promise<ProfileUserInfo>
מאחזר את כתובת האימייל ואת מזהה GAIA המוסתר של המשתמש שמחובר לפרופיל.
נדרשת הרשאת המניפסט identity.email. אחרת, הפונקציה מחזירה תוצאה ריקה.
יש שני הבדלים בין ה-API הזה לבין identity.getAccounts. המידע שמוחזר זמין אופליין, והוא רלוונטי רק לחשבון הראשי של הפרופיל.
פרמטרים
-
פרטים
ProfileDetails אופציונלי
Chrome 84 ואילךאפשרויות הפרופיל.
החזרות
-
Promise<ProfileUserInfo>
Chrome 106 ואילך
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 ואילך
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
): Promise<void>
הפעולה הזו מסירה אסימון גישה מסוג OAuth2 ממטמון הטוקנים של Identity API.
אם מתגלה שאסימון גישה לא תקין, צריך להעביר אותו אל removeCachedAuthToken כדי להסיר אותו מהמטמון. לאחר מכן האפליקציה יכולה לאחזר טוקן חדש באמצעות getAuthToken.
פרמטרים
-
פרטים
פרטי הטוקן.
החזרות
-
Promise<void>
Chrome 106 ואילך
אירועים
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
מופעל כשסטטוס הכניסה משתנה בחשבון בפרופיל המשתמש.
פרמטרים
-
callback
פונקציה
הפרמטר
callbackנראה כך:(account: AccountInfo, signedIn: boolean) => void
-
חשבון
-
signedIn
בוליאני
-