به FedCM مهاجرت کنید

این راهنما به شما کمک می‌کند تا تغییرات اعمال شده در برنامه وب خود توسط API مدیریت اعتبارنامه‌های فدرال (FedCM) را درک کنید.

وقتی FedCM فعال باشد، مرورگر پیام‌هایی را به کاربر نمایش می‌دهد و از هیچ کوکی شخص ثالثی استفاده نمی‌شود.

نمای کلی

FedCM جریان‌های ورود خصوصی‌تری را بدون نیاز به استفاده از کوکی‌های شخص ثالث امکان‌پذیر می‌کند. مرورگر تنظیمات کاربر را کنترل می‌کند، پیام‌های کاربر را نمایش می‌دهد و فقط پس از رضایت صریح کاربر با یک ارائه‌دهنده هویت مانند گوگل تماس می‌گیرد.

برای اکثر وب‌سایت‌ها، مهاجرت به طور یکپارچه از طریق به‌روزرسانی‌های سازگار با نسخه‌های قبلی کتابخانه جاوا اسکریپت سرویس‌های هویت گوگل (Google Identity Services) انجام می‌شود.

به‌روزرسانی‌های قابلیت ورود خودکار

نسخه بتای مدیریت اعتبارنامه فدرال (FedCM) برای سرویس‌های هویت گوگل در آگوست 2023 راه‌اندازی شد. بسیاری از توسعه‌دهندگان این API را آزمایش کرده و بازخوردهای ارزشمندی ارائه داده‌اند.

یکی از پاسخ‌هایی که گوگل از توسعه‌دهندگان شنیده، در مورد الزام حرکت کاربر در جریان ورود خودکار FedCM است. برای بهبود حریم خصوصی، کروم از کاربران می‌خواهد که در هر نمونه کروم، حتی اگر کاربر قبل از راه‌اندازی FedCM وب‌سایت را تأیید کرده باشد، دوباره تأیید کنند که می‌خواهند با حساب گوگل به وب‌سایت وارد شوند. این تأیید مجدد یک‌باره از طریق یک کلیک روی اعلان One Tap یا جریان Button با FedCM برای نشان دادن قصد کاربر برای ورود به سیستم انجام می‌شود. این تغییر ممکن است باعث اختلال اولیه در نرخ تبدیل ورود خودکار برای برخی از وب‌سایت‌ها شود.

اخیراً در M121، کروم تغییری در رابط کاربری جریان ورود خودکار FedCM ایجاد کرده است. تأیید مجدد فقط زمانی لازم است که کوکی‌های شخص ثالث محدود شده باشند. این به این معنی است:

  1. ورود خودکار FedCM برای کاربرانی که دوباره به سیستم وارد می‌شوند نیازی به تأیید مجدد ندارد. اگر کاربران با رابط کاربری FedCM دوباره تأیید کنند، این تأیید مجدد در الزامات حرکتی کاربر برای دوران پس از 3PCD لحاظ خواهد شد.

  2. ورود خودکار FedCM وضعیت تأیید مجدد را بررسی می‌کند، زمانی که کوکی‌های شخص ثالث به صورت دستی توسط کاربران در حال حاضر یا به طور پیش‌فرض در Chrome آینده محدود شده‌اند.

با این تغییر، به همه توسعه‌دهندگان ورود خودکار توصیه می‌کنیم در اسرع وقت به FedCM مهاجرت کنند تا اختلال در نرخ تبدیل ورود خودکار کاهش یابد.

برای جریان ورود خودکار، GIS JavaScript در کروم قدیمی‌تر (قبل از M121) FedCM را فعال نمی‌کند، حتی اگر وب‌سایت شما FedCM را انتخاب کند.

تفاوت‌های سفر کاربر

تجربه‌های One Tap با استفاده از FedCM و بدون FedCM فقط با تفاوت‌های جزئی مشابه هستند.

کاربر جدید تک جلسه‌ای

با استفاده از FedCM، One Tap به جای نام برنامه، نام دامنه سطح بالا را نشان می‌دهد.

استفاده از FedCM بدون FedCM
کاربر جدید تک جلسه‌ای با استفاده از FedCMکاربر جدید تک جلسه‌ای بدون FedCM

کاربر بازگشتی تک جلسه‌ای (با غیرفعال بودن ورود خودکار)

با استفاده از FedCM، One Tap به جای نام برنامه، نام دامنه سطح بالا را نشان می‌دهد.

استفاده از FedCM بدون FedCM
سفر بازگشتی کاربر تک‌جلسه‌ای با استفاده از FedCM (با غیرفعال بودن ورود خودکار)سفر بازگشتی کاربر تک‌جلسه‌ای بدون FedCM (با غیرفعال بودن ورود خودکار)

کاربر بازگشتی تک جلسه‌ای (با فعال بودن ورود خودکار)

با استفاده از FedCM، کاربران می‌توانند به جای کلیک بر روی دکمه لغو ، برای لغو ورود خودکار ظرف ۵ ثانیه روی X کلیک کنند.

استفاده از FedCM بدون FedCM
سفر بازگشتی کاربر تک‌جلسه‌ای با استفاده از FedCM (با فعال بودن ورود خودکار)سفر بازگشتی کاربر تک‌جلسه‌ای بدون FedCM (با فعال بودن ورود خودکار)

چند جلسه‌ای

با استفاده از FedCM، One Tap به جای نام برنامه، نام دامنه سطح بالا را نشان می‌دهد.

استفاده از FedCM بدون FedCM
کاربر چند جلسه‌ای با استفاده از FedCMکاربر چند جلسه‌ای بدون FedCM

برای مشاهده‌ی مسیرهای کلیدی کاربر در جریان دکمه‌ی FedCM، به صفحه‌ی دکمه‌ی ورود با گوگل مراجعه کنید.

قبل از اینکه شروع کنی

بررسی کنید که تنظیمات و نسخه مرورگر شما از API FedCM پشتیبانی کند ، به‌روزرسانی به آخرین نسخه توصیه می‌شود.

  • رابط برنامه‌نویسی FedCM در کروم ۱۱۷ یا بالاتر در دسترس است.

  • تنظیمات ورود به سیستم شخص ثالث در کروم فعال است. این تنظیم فقط روی One Tap تأثیر می‌گذارد و هیچ تأثیری بر جریان دکمه FedCM ندارد.

  • اگر نسخه مرورگر کروم شما ۱۱۹ یا قدیمی‌تر است، chrome://flags را باز کنید و ویژگی آزمایشی FedCmWithoutThirdPartyCookies را فعال کنید. این مرحله در مرورگر کروم نسخه ۱۲۰ یا بالاتر لازم نیست.

برنامه وب خود را منتقل کنید

برای فعال کردن FedCM، ارزیابی تأثیر مهاجرت احتمالی و در صورت لزوم ایجاد تغییرات در برنامه وب موجود خود، این مراحل را دنبال کنید:

۱. برای فعال کردن FedCM برای دکمه هنگام مقداردهی اولیه با استفاده از دستور زیر، یک پرچم بولی اضافه کنید : (اختیاری)

  • در HTML، ویژگی data-use_fedcm_for_button را روی true تنظیم کنید تا جریان دکمه FedCM فعال شود. فقط با فعال بودن جریان دکمه FedCM، می‌توانید ویژگی data-use_fedcm_for_button را روی true تنظیم کنید تا ویژگی جدید انتخاب خودکار فعال شود.

  • جاوا اسکریپت، برای فعال کردن جریان دکمه FedCM، در شیء IdConfiguration ، use_fedcm_for_button روی true تنظیم کنید. فقط با فعال بودن جریان دکمه FedCM، می‌توانید ویژگی button_auto_select روی true تنظیم کنید تا ویژگی جدید انتخاب خودکار فعال شود.

۲. استفاده از متدهای isDisplayMoment() ، isDisplayed() ، isNotDisplayed() و getNotDisplayedReason() را برای One Tap در کد خود حذف کنید .

برای بهبود حریم خصوصی کاربر، تابع google.accounts.id.prompt دیگر هیچ اعلانی در مورد زمان نمایش در شیء PromptMomentNotication برنمی‌گرداند. هر کدی را که به متدهای مرتبط با زمان نمایش وابسته است، حذف کنید. این متدها عبارتند از isDisplayMoment() ، isDisplayed() ، isNotDisplayed() و getNotDisplayedReason() .

۳. استفاده از متد getSkippedReason() برای One Tap را در کد خود حذف کنید .

در حالی که لحظه پرش، isSkippedMoment() ، همچنان از طریق فراخوانی google.accounts.id.prompt در شیء PromptMomentNotication فراخوانی می‌شود، دلیل دقیقی ارائه نمی‌شود. هر کدی را که به متد getSkippedReason() بستگی دارد، از کد خود حذف کنید.

توجه داشته باشید که اعلان لحظه‌ی رد شده، isDismissedMoment() و متد دلیل جزئی مرتبط، getDismissedReason() ، هنگام فعال بودن FedCM بدون تغییر باقی می‌مانند.

۴. ویژگی‌های سبک position را از data-prompt_parent_id و intermediate_iframes برای One Tap حذف کنید .

مرورگر اندازه و موقعیت اعلان‌های کاربر را کنترل می‌کند، موقعیت‌های سفارشی برای One Tap on Desktop پشتیبانی نمی‌شوند.

۵. در صورت نیاز برای One Tap، طرح‌بندی صفحه را به‌روزرسانی کنید .

مرورگر اندازه و موقعیت اعلان‌های کاربر را کنترل می‌کند. بسته به طرح‌بندی صفحات جداگانه، ممکن است برخی از محتوا همپوشانی داشته باشند زیرا موقعیت‌های سفارشی برای One Tap on Desktop به هیچ وجه پشتیبانی نمی‌شوند، مانند ویژگی style ، data-prompt_parent_id ، intermediate_iframes ، iframe سفارشی و سایر روش‌های خلاقانه.

وقتی اطلاعات مهم مبهم هستند، برای بهبود تجربه کاربری، طرح‌بندی صفحه را تغییر دهید. حتی اگر فرض می‌کنید که دکمه‌ی One Tap در موقعیت پیش‌فرض قرار دارد، UX خود را بر اساس آن نسازید. از آنجا که FedCM API توسط مرورگر پشتیبانی می‌شود، ممکن است فروشندگان مرورگرهای مختلف موقعیت دکمه را کمی متفاوت قرار دهند.

۶. اگر برنامه وب شما از طریق iframe های cross-origin، API مربوط به One Tap یا Button را فراخوانی می‌کند، ویژگی allow="identity-credentials-get" را به فریم والد اضافه کنید .

یک iframe در صورتی cross-origin محسوب می‌شود که origin آن دقیقاً مشابه origin والدش نباشد. برای مثال:

  • دامنه‌های مختلف: https://example1.com و https://example2.com
  • دامنه‌های سطح بالای مختلف: https://example.uk و https://example.jp
  • زیر دامنه‌ها: https://example.com و https://login.example.com

هنگام استفاده از One Tap در یک iframe چند-مبدأی، کاربران ممکن است با یک تجربه گیج‌کننده مواجه شوند. اعلان One Tap نام دامنه سطح بالا را نمایش می‌دهد، نه نام iframe را، به عنوان یک اقدام امنیتی برای جلوگیری از برداشت اعتبار. با این حال، توکن‌های شناسه به مبدا iframe صادر می‌شوند. برای جزئیات بیشتر، این مشکل GitHub را بررسی کنید.

از آنجا که این اختلاف می‌تواند گمراه‌کننده باشد، فقط استفاده از One Tap در iframe های cross-origin اما same-site یک روش پشتیبانی شده است. به عنوان مثال، صفحه‌ای در دامنه سطح بالا https://www.example.com با استفاده از iframe برای جاسازی صفحه‌ای با One Tap در https://login.example.com . پیام One Tap عبارت "ورود به example.com با google.com" را نمایش می‌دهد.

سایر موارد مانند دامنه‌های مختلف پشتیبانی نمی‌شوند . در عوض، روش‌های ادغام جایگزین مانند موارد زیر را در نظر بگیرید:

  • پیاده‌سازی دکمه ورود با گوگل بدون فعال بودن FedCM
  • پیاده‌سازی One Tap روی دامنه سطح بالا
  • استفاده از نقاط پایانی Google OAuth 2.0 برای یکپارچه‌سازی سفارشی‌تر.
  • اگر یک سایت شخص ثالث را درون یک iframe جاسازی می‌کنید و نمی‌توانید پیاده‌سازی One Tap آن را تغییر دهید، می‌توانید از نمایش اعلان One Tap درون iframe جلوگیری کنید. برای انجام این کار، ویژگی allow="identity-credentials-get" را از تگ iframe در فریم والد حذف کنید. این کار اعلان را غیرفعال می‌کند و سپس می‌توانید کاربران خود را مستقیماً به صفحه ورود به سیستم سایت جاسازی شده هدایت کنید.

وقتی One Tap یا Button API از iframe های cross-origin فراخوانی می‌شود، باید ویژگی allow="identity-credentials-get" را در هر تگ iframe فریم والد اضافه کنید:

  <iframe src="https://your.cross-origin/onetap.page" allow="identity-credentials-get"></iframe>

اگر برنامه شما از iframe ای استفاده می‌کند که خود شامل iframe دیگری است، باید مطمئن شوید که این ویژگی به هر iframe، از جمله تمام sub-iframeها، اضافه شده است.

برای مثال، سناریوی زیر را در نظر بگیرید:

  • سند بالایی ( https://www.example.uk ) شامل یک iframe با نام "Iframe A" است که یک صفحه ( https://logins.example.com ) را در خود جای داده است.

  • این صفحه جاسازی‌شده ( https://logins.example.com ) همچنین حاوی یک iframe با نام "Iframe B" است که صفحه‌ای ( https://onetap.example2.com ) را که میزبان یک ضربه یا دکمه است، جاسازی می‌کند.

    برای اطمینان از اینکه One Tap یا Button به درستی نمایش داده می‌شود، این ویژگی باید به هر دو تگ Iframe A و Iframe B اضافه شود.

    برای سوالات مربوط به عدم نمایش One Tap prompt یا Button آماده شوید . سایت‌های دیگر با ریشه‌های متفاوت ممکن است صفحات شما را که One Tap در آنها میزبانی می‌شود، در iframe های خود جاسازی کنند. ممکن است تعداد تیکت‌های پشتیبانی مربوط به عدم نمایش One Tap یا Button از کاربران نهایی یا سایر صاحبان سایت افزایش یابد. در حالی که به‌روزرسانی‌ها فقط توسط صاحبان سایت در صفحاتشان قابل انجام است، می‌توانید موارد زیر را برای کاهش تأثیر انجام دهید:

  • مستندات توسعه‌دهنده خود را به‌روزرسانی کنید تا نحوه تنظیم صحیح iframe برای فراخوانی سایت شما را شامل شود. می‌توانید در مستندات خود به این صفحه پیوند دهید.

  • در صورت لزوم، صفحه سوالات متداول توسعه‌دهندگان خود را به‌روزرسانی کنید.

  • تیم پشتیبانی خود را از این تغییر قریب‌الوقوع مطلع کنید و از قبل برای پاسخ به استعلام آماده باشید.

  • برای انتقال روان FedCM، به طور فعال با شرکا، مشتریان یا صاحبان سایت‌های آسیب‌دیده تماس بگیرید.

۷. این دستورالعمل‌ها را به سیاست امنیت محتوا (CSP) خود اضافه کنید .

این مرحله اختیاری است زیرا همه وب‌سایت‌ها CSP را تعریف نمی‌کنند.

  • اگر در وب‌سایت شما از CSP استفاده نشده است، نیازی به تغییر نیست.

  • اگر CSP شما برای One Tap یا Button فعلی کار می‌کند و connect-src ، frame-src ، script-src ، style-src یا default-src استفاده نمی‌کنید، نیازی به تغییر نیست.

  • در غیر این صورت، برای تنظیم CSP خود، این راهنما را دنبال کنید. بدون تنظیم صحیح CSP، دکمه یا لمس FedCM در سایت نمایش داده نمی‌شود.

۸. پشتیبانی از صفحات موبایلی پرشتاب (AMP) برای ورود به سیستم را حذف کنید .

پشتیبانی از ورود کاربر برای AMP یک ویژگی اختیاری GIS است که ممکن است برنامه وب شما پیاده‌سازی کرده باشد. در این صورت،

هرگونه ارجاع به موارد زیر را حذف کنید :

  • عنصر سفارشی amp-onetap-google ، و
  • <script async custom-element="amp-onetap-google" src="https://cdn.ampproject.org/v0/amp-onetap-google-0.1.js"></script>
    

    در نظر داشته باشید که درخواست‌های ورود به سیستم را از AMP به جریان ورود به سیستم HTML وب‌سایت خود هدایت کنید. توجه داشته باشید که Intermediate Iframe Support API مرتبط تحت تأثیر قرار نمی‌گیرد.

مهاجرت خود را آزمایش و تأیید کنید

پس از انجام تغییرات لازم بر اساس مراحل قبلی، می‌توانید تأیید کنید که مهاجرت موفقیت‌آمیز بوده است.

  1. مطمئن شوید که مرورگر شما از FedCM پشتیبانی می‌کند و یک حساب کاربری گوگل دارید.

  2. به صفحه (های) تک لمسی یا دکمه‌ای در برنامه خود بروید.

  3. تأیید کنید که اعلان یا دکمه‌ی «یک ضربه» نمایش داده می‌شود و با خیال راحت محتوای زیرین را می‌پوشاند.

  4. هنگام ورود به برنامه خود با استفاده از یک ضربه یا دکمه، اعتبارنامه صحیح را به نقطه پایانی یا متد فراخوانی خود برگردانید.

  5. اگر ورود خودکار فعال است، تأیید کنید که لغو فعال می‌شود و اعتبارنامه صحیح به نقطه پایانی یا متد فراخوانی شما برمی‌گردد.

دوره استراحت با یک ضربه

کلیک روی دکمه‌ی « با یک ضربه» در گوشه‌ی بالا سمت راست، اعلان را می‌بندد و وارد دوره‌ی انتظار می‌شود که نمایش اعلان «یک ضربه» را موقتاً متوقف می‌کند. در کروم، اگر می‌خواهید اعلان «یک ضربه» قبل از پایان دوره‌ی انتظار دوباره نمایش داده شود، می‌توانید با کلیک روی نماد قفل در نوار آدرس و کلیک روی دکمه‌ی «بازنشانی مجوز» وضعیت انتظار را مجدداً تنظیم کنید.

ورود خودکار به سیستم در دوره سکوت

هنگام آزمایش ورود خودکار با One Tap با استفاده از FedCM، بین هر تلاش برای ورود خودکار، یک دوره سکوت 10 دقیقه‌ای وجود دارد. دوره سکوت قابل تنظیم مجدد نیست. برای فعال شدن مجدد ورود خودکار، باید 10 دقیقه صبر کنید یا از حساب گوگل دیگری برای آزمایش استفاده کنید.

منابع مفید

ابزار تحلیل حریم خصوصی (PSAT) یک افزونه‌ی DevTools کروم است که به پذیرش APIهای جایگزین مانند FedCM کمک می‌کند. این ابزار با اسکن سایت شما برای یافتن ویژگی‌های آسیب‌دیده، فهرستی از تغییرات پیشنهادی را ارائه می‌دهد.