کروم. هویت

شرح

از chrome.identity API برای دریافت نشانه های دسترسی OAuth2 استفاده کنید.

مجوزها

identity

انواع

AccountInfo

خواص

  • شناسه

    رشته

    یک شناسه منحصر به فرد برای حساب. این شناسه در طول عمر حساب تغییر نخواهد کرد.

AccountStatus

Chrome 84+

Enum

"همگام سازی"
مشخص می کند که همگام سازی برای حساب اصلی فعال است.

"هر"
وجود یک حساب اصلی را در صورت وجود مشخص می کند.

GetAuthTokenResult

Chrome 105+

خواص

  • grantedScopes

    رشته[] اختیاری است

    فهرستی از دامنه های OAuth2 که به برنامه افزودنی اعطا شده است.

  • نشانه

    رشته اختیاری

    توکن خاص مرتبط با درخواست.

InvalidTokenDetails

خواص

  • نشانه

    رشته

    توکن خاصی که باید از کش حذف شود.

ProfileDetails

Chrome 84+

خواص

  • وضعیت حساب

    وضعیت حساب اختیاری است

    وضعیت حساب اصلی وارد شده به نمایه ای که ProfileUserInfo باید برگردانده شود. پیش‌فرض وضعیت حساب SYNC .

ProfileUserInfo

خواص

  • پست الکترونیک

    رشته

    یک آدرس ایمیل برای حساب کاربری وارد شده به نمایه فعلی. اگر کاربر وارد سیستم نشده باشد یا مجوز مانیفست identity.email مشخص نشده باشد، خالی است.

  • شناسه

    رشته

    یک شناسه منحصر به فرد برای حساب. این شناسه در طول عمر حساب تغییر نخواهد کرد. اگر کاربر وارد سیستم نشده باشد یا (در M41+) مجوز مانیفست identity.email مشخص نشده باشد، خالی است.

TokenDetails

خواص

  • حساب

    AccountInfo اختیاری است

    شناسه حسابی که توکن آن باید برگردانده شود. اگر مشخص نشده باشد، این عملکرد از یک حساب از نمایه Chrome استفاده می کند: در صورت وجود حساب همگام سازی یا در غیر این صورت اولین حساب وب Google.

  • enableGranularPermissions

    بولی اختیاری

    Chrome 87+

    پرچم enableGranularPermissions به برنامه‌های افزودنی اجازه می‌دهد تا زودتر در صفحه رضایت مجوزهای گرانول شرکت کنند، که در آن مجوزهای درخواستی به صورت جداگانه اعطا یا رد می‌شوند.

  • در ارتباط بودن

    بولی اختیاری

    واکشی نشانه ممکن است نیاز به ورود کاربر به Chrome داشته باشد یا محدوده درخواستی برنامه را تأیید کند. اگر پرچم تعاملی true باشد، getAuthToken در صورت لزوم از کاربر درخواست می کند. هنگامی که پرچم false است یا حذف می شود، getAuthToken هر زمان که درخواستی لازم باشد، شکست را برمی گرداند.

  • دامنه ها

    رشته[] اختیاری است

    لیستی از دامنه های OAuth2 برای درخواست.

    هنگامی که فیلد scopes وجود دارد، فهرست دامنه های مشخص شده در manifest.json را لغو می کند.

WebAuthFlowDetails

خواص

  • abortOnLoadForNonInteractive

    بولی اختیاری

    Chrome 113+

    خاتمه دادن به launchWebAuthFlow برای درخواست‌های غیرتعاملی پس از بارگیری صفحه. این پارامتر بر جریان های تعاملی تأثیر نمی گذارد.

    وقتی روی true (پیش‌فرض) تنظیم شود، جریان بلافاصله پس از بارگیری صفحه پایان می‌یابد. هنگامی که روی false تنظیم شود، جریان فقط پس از گذشتن از timeoutMsForNonInteractive خاتمه می یابد. این برای ارائه دهندگان هویت که از جاوا اسکریپت برای انجام تغییر مسیرها پس از بارگیری صفحه استفاده می کنند مفید است.

  • در ارتباط بودن

    بولی اختیاری

    آیا برای راه‌اندازی جریان اعتبار در حالت تعاملی.

    از آنجایی که برخی از جریان‌های اعتبار ممکن است فوراً به URL نتیجه هدایت شوند، launchWebAuthFlow نمای وب خود را تا زمانی که اولین پیمایش به URL نهایی هدایت شود یا بارگذاری صفحه‌ای که قرار است نمایش داده شود به پایان برسد پنهان می‌کند.

    اگر پرچم interactive true باشد، وقتی بارگیری صفحه کامل شد، پنجره نمایش داده می شود. اگر پرچم false یا حذف شده باشد، launchWebAuthFlow با خطا برمی گردد اگر پیمایش اولیه جریان را کامل نکند.

    برای جریان‌هایی که از جاوا اسکریپت برای تغییر مسیر استفاده می‌کنند، abortOnLoadForNonInteractive می‌توان روی false در ترکیب با تنظیم timeoutMsForNonInteractive تنظیم کرد تا به صفحه فرصتی برای انجام هرگونه تغییر مسیر داده شود.

  • timeoutMsForNonInteractive

    شماره اختیاری

    Chrome 113+

    حداکثر زمان، بر حسب میلی ثانیه، launchWebAuthFlow در مجموع در حالت غیرتعاملی مجاز است. فقط در صورتی تأثیر دارد که interactive false باشد.

  • آدرس اینترنتی

    رشته

    URL که جریان احراز هویت را آغاز می کند.

مواد و روش ها

clearAllCachedAuthTokens()

Promise Chrome 87+
chrome.identity.clearAllCachedAuthTokens(
  callback?: function,
)

وضعیت Identity API را بازنشانی می کند:

  • تمام نشانه های دسترسی OAuth2 را از کش توکن حذف می کند
  • تنظیمات برگزیده حساب کاربر را حذف می کند
  • کاربر را از همه جریان‌های تأییدیه خارج می‌کند

مولفه های

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    ()=>void

برمی گرداند

  • قول<باطل>

    Chrome 106+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

getAccounts()

کانال Promise Dev
chrome.identity.getAccounts(
  callback?: function,
)

فهرستی از اشیاء AccountInfo را که حساب‌های موجود در نمایه را توصیف می‌کنند، بازیابی می‌کند.

getAccounts فقط در کانال توسعه دهنده پشتیبانی می شود.

مولفه های

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (accounts: AccountInfo[])=>void

برمی گرداند

  • Promise< AccountInfo []>

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

getAuthToken()

وعده
chrome.identity.getAuthToken(
  details?: TokenDetails,
  callback?: function,
)

یک نشانه دسترسی OAuth2 با استفاده از شناسه سرویس گیرنده و محدوده های مشخص شده در بخش oauth2 manifest.json دریافت می کند.

Identity API توکن‌های دسترسی را در حافظه پنهان می‌کند، بنابراین هر زمان که به یک نشانه نیاز است، بهتر است getAuthToken به صورت غیر تعاملی فراخوانی کنید. حافظه پنهان رمز به طور خودکار انقضا را کنترل می کند.

برای یک تجربه کاربری خوب، مهم است که درخواست‌های توکن تعاملی توسط UI در برنامه شما آغاز شود و توضیح دهد که مجوز برای چه چیزی است. انجام ندادن این کار باعث می‌شود کاربران شما درخواست‌های مجوز دریافت کنند، یا اگر وارد سیستم نشده باشند، صفحه‌های ورود به سیستم کروم را بدون هیچ زمینه‌ای دریافت می‌کنند. به ویژه، هنگامی که برنامه شما برای اولین بار راه اندازی می شود، getAuthToken به صورت تعاملی استفاده نکنید.

توجه: هنگامی که با یک callback فراخوانی می شود، این تابع به جای برگرداندن یک شی، این دو ویژگی را به عنوان آرگومان های جداگانه به callback ارسال می کند.

مولفه های

  • جزئیات

    TokenDetails اختیاری است

    گزینه های توکن

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (result: GetAuthTokenResult)=>void

برمی گرداند

  • Promise< GetAuthTokenResult >

    Chrome 105+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

getProfileUserInfo()

وعده
chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
  callback?: function,
)

آدرس ایمیل و شناسه gaia مبهم کاربر وارد شده به نمایه را بازیابی می کند.

به مجوز مانیفست identity.email نیاز دارد. در غیر این صورت، یک نتیجه خالی برمی گرداند.

این API از دو جهت با هویت.getAccounts متفاوت است. اطلاعات بازگردانده شده به صورت آفلاین در دسترس است و فقط برای حساب اصلی نمایه اعمال می شود.

مولفه های

  • جزئیات

    ProfileDetails اختیاری است

    Chrome 84+

    گزینه های نمایه

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (userInfo: ProfileUserInfo)=>void

برمی گرداند

  • Promise< ProfileUserInfo >

    Chrome 106+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

getRedirectURL()

chrome.identity.getRedirectURL(
  path?: string,
)

URL تغییر مسیر را برای استفاده در launchWebAuthFlow ایجاد می کند.

URL های ایجاد شده با الگوی https://<app-id>.chromiumapp.org/* مطابقت دارند.

مولفه های

  • مسیر

    رشته اختیاری

    مسیر به انتهای URL تولید شده اضافه شده است.

برمی گرداند

  • رشته

launchWebAuthFlow()

وعده
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)

یک جریان احراز هویت را در URL مشخص شده شروع می کند.

این روش با راه‌اندازی یک نمای وب و پیمایش آن به اولین URL در جریان تأیید اعتبار ارائه‌دهنده، جریان‌های احراز هویت با ارائه‌دهندگان هویت غیر Google را فعال می‌کند. وقتی ارائه‌دهنده به URL منطبق با الگوی https://<app-id>.chromiumapp.org/* هدایت می‌شود، پنجره بسته می‌شود و نشانی اینترنتی تغییر مسیر نهایی به تابع پاسخ به callback ارسال می‌شود.

برای یک تجربه کاربری خوب، مهم است که جریان‌های احراز هویت تعاملی توسط UI در برنامه شما آغاز شود و توضیح دهد که مجوز برای چه چیزی است. عدم انجام این کار باعث می شود کاربران شما درخواست های مجوز بدون زمینه دریافت کنند. به ویژه، هنگامی که برنامه شما برای اولین بار راه اندازی می شود، یک جریان احراز هویت تعاملی راه اندازی نکنید.

مولفه های

  • جزئیات

    گزینه های جریان WebAuth.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (responseUrl?: string)=>void

    • پاسخ آدرس

      رشته اختیاری

برمی گرداند

  • Promise<string|undefined>

    Chrome 106+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

removeCachedAuthToken()

وعده
chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
  callback?: function,
)

یک نشانه دسترسی OAuth2 را از حافظه پنهان رمز Identity API حذف می کند.

اگر مشخص شد که یک نشانه دسترسی نامعتبر است، باید به removeCachedAuthToken ارسال شود تا آن را از حافظه پنهان حذف کند. سپس برنامه ممکن است یک نشانه جدید را با getAuthToken بازیابی کند.

مولفه های

  • جزئیات

    اطلاعات رمزی

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    ()=>void

برمی گرداند

  • قول<باطل>

    Chrome 106+

    Promises در Manifest V3 و نسخه های جدیدتر پشتیبانی می شود، اما callbacks برای سازگاری به عقب ارائه شده است. شما نمی توانید از هر دو در یک فراخوانی تابع استفاده کنید. وعده با همان نوعی که به callback ارسال می شود حل می شود.

مناسبت ها

onSignInChanged

chrome.identity.onSignInChanged.addListener(
  callback: function,
)

هنگامی که وضعیت ورود به سیستم برای یک حساب در نمایه کاربر تغییر می کند فعال می شود.

مولفه های

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (account: AccountInfo,signedIn: boolean)=>void