תיאור
משתמשים ב-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
בוליאני
-