انتقال از «ابزارک هویت Google» به «پلاتفرم هویت Google Cloud»

جدیدترین نسخه Google Identity Toolkit با نام Identity Platform و Firebase Authentication منتشر شده است. ازاین‌پس، کار روی ویژگی‌های Identity Toolkit متوقف خواهد شد؛ همه توسعه‌های ویژگی جدید در Identity Platform و Firebase Authentication انجام خواهد شد. توسعه‌دهندگان Identity Toolkit را تشویق می‌کنیم تا در اولین فرصت ممکن برای برنامه‌هایشان به این پلاتفرم‌ها منتقل شوند.

ویژگی‌های جدید

Identity Platform درحال‌حاضر نسبت به Google Identity Toolkit بهبودهای قابل‌توجهی در ویژگی‌ها دارد:

  • کنسول سرپرست جدید

    Identity Platform دارای کنسول توسعه‌دهنده جدیدی است که به شما امکان می‌دهد کاربران خود را مشاهده، اصلاح و حذف کنید؛ این می‌تواند برای اشکال‌زدایی جریان‌های ورود به سیستم و ثبت‌نام شما مفید باشد. این کنسول همچنین به شما امکان می‌دهد روش‌های اصالت‌سنجی را پیکربندی کنید و الگوهای ایمیل را سفارشی‌سازی کنید.

  • روش‌های جدید اصالت‌سنجی

    Identity Platform از استانداردهای فدراسیون سازمانی، مانند SAML و OIDC، پشتیبانی می‌کند و به شما امکان می‌دهد برنامه‌ها و سرویس‌های SaaS را مقیاس‌بندی کنید. Identity Platform همچنین از ارائه‌دهندگانی مانند GitHub،‏ Microsoft،‏ Yahoo، و غیره پشتیبانی می‌کند. می‌توانید از ورود به سیستم ناشناس برای ایجاد شناسه کاربر یکتا استفاده کنید بدون اینکه کاربر را ملزم به گذراندن فرایند ورود به سیستم یا ثبت‌نام کنید؛ این کار به شما امکان می‌دهد فراخوانی‌های اصالت‌سنجی‌شده میانای برنامه‌سازی کاربردی را مانند یک کاربر معمولی انجام دهید. وقتی کاربر تصمیم می‌گیرد برای حسابی ثبت‌نام کند، همه فعالیت‌ها با همان شناسه کاربر حفظ می‌شود. این ویژگی برای سناریوهایی مانند سبد خرید سمت سرور یا سایر برنامه‌هایی که می‌خواهید کاربر را قبل‌از ارسال به جریان ثبت‌نام درگیر کنید، ارزشمند است.

  • با اطمینان از «قراردادهای سطح خدمات» و «پشتیبانی ابری» مقیاس‌بندی کنید

    Identity Platform بر زیرساخت قابل‌اعتماد Google ساخته شده است و قراردادهای سطح خدمات و پشتیبانی از Google Cloud را ارائه می‌دهد. این یعنی می‌توانید سرویس خود را با اطمینان مقیاس‌بندی کنید و برای ارائه انعطاف‌پذیری، دردسترس بودن، و مقیاس‌پذیری موردنیازتان به Google تکیه کنید.

  • دسترسی به همه Firebase

    Firebase پلاتفرمی برای تلفن همراه است که به شما کمک می‌کند به‌سرعت برنامه‌هایی با کیفیت بالا توسعه دهید، پایگاه کاربرانتان را گسترش دهید، و درآمد بیشتری کسب کنید. Firebase از ویژگی‌های مکمل تشکیل شده است که می‌توانید آن‌ها را باهم ترکیب کنید تا با نیازهایتان مطابقت داشته باشند و شامل زیرساخت‌هایی برای موارد زیر است: تجزیه‌وتحلیل تلفن همراه، پیام‌رسانی ابری، پایگاه داده هم‌زمان، فضای ذخیره‌سازی فایل، میزبانی ایستا، پیکربندی از راه دور، گزارش‌دهی خرابی تلفن همراه، و آزمایش Android.

  • میانای کاربر به‌روزشده

    جریان‌های واسط کاربر را براساس جدیدترین تحقیقات Google درزمینه تجربه کاربری کاملاً بازسازی کرده‌ایم. این شامل بازیابی گذرواژه، پیوند دادن حساب، جریان‌های ابهام‌زدایی حساب جدید/موجود است که اغلب زمان زیادی برای کدنویسی و اشکال‌زدایی نیاز دارند. این برنامه Smart Lock برای گذرواژه‌ها را در Android ادغام می‌کند که به‌طور قابل‌توجهی تبدیل ثبت‌نام و ورود به سیستم را برای برنامه‌های شرکت‌کننده بهبود بخشیده است. همچنین از اصلاحات آسان زمینه برای مطابقت با برنامه شما پشتیبانی می‌کند و برای حداکثر سفارشی‌سازی، نسخه‌های Android و iOS متن‌باز شده‌اند.

  • راه‌اندازی ساده سرور

    با Identity Toolkit، متوجه شدیم که بسیاری از توسعه‌دهندگان تصمیم گرفتند جریان بازیابی ایمیل را پیاده‌سازی نکنند، که باعث شد کاربرانشان درصورت فراموش کردن گذرواژه نتوانند حساب‌هایشان را بازیابی کنند. Identity Platform می‌تواند پیام‌های درستی‌سنجی ایمیل، بازنشانی گذرواژه، و تغییر گذرواژه را به کاربر ارسال کند و نوشتار را می‌توان به‌راحتی برای کاربران شما سفارشی‌سازی کرد. علاوه‌براین، دیگر لازم نیست ابزاره‌های واسط کاربر را برای میزبانی تغییرمسیرها و تکمیل عملیات تغییر گذرواژه میزبانی کنید.

  • کیت‌های توسعه نرم‌افزار جدید

    همه میاناهای برنامه‌سازی کاربردی سرور Identity Toolkit اکنون به‌صورت بومی با هریک از کتابخانه‌های کارخواه ما (Android،‏ iOS، وب) دردسترس هستند. توسعه‌دهندگان می‌توانند کاربران قدیمی و جدید را ثبت‌نام کنند و به سیستم وارد کنند، به ویژگی‌های کاربر دسترسی داشته باشند، حساب‌ها را پیوند دهند، به‌روز کنند، و حذف کنند، گذرواژه‌ها را بازنشانی کنند، و کارهای دیگری را بدون محدود شدن به یک واسط کاربر ثابت انجام دهند. درصورت تمایل، می‌توانید کل جریان و تجربه ورود به سیستم را به‌صورت دستی روی این API بسازید.

  • مدیریت جلسه برای برنامه‌های تلفن همراه

    با Identity Toolkit، برنامه‌ها وضعیت جلسه خودشان را براساس رویداد اصالت‌سنجی اولیه از Identity Toolkit ایجاد می‌کردند. Identity Platform از یک سرویس پس‌بک استفاده می‌کند که یک ژتون بازآوری را که از رویداد اصالت‌سنجی ایجاد شده است، می‌گیرد و آن را با ژتون‌های دسترسی یک‌ساعته برای Android، iOS و JavaScript مبادله می‌کند. وقتی کاربری گذرواژه‌اش را تغییر می‌دهد، ژتون‌های بازآوری دیگر نمی‌توانند کد دسترسی جدید تولید کنند، بنابراین دسترسی غیرفعال می‌شود تا زمانی که کاربر دوباره در آن دستگاه اصالت‌سنجی کند.

تفاوت‌های ویژگی

برخی‌از ویژگی‌های Identity Toolkit درحال‌حاضر در Identity Platform دردسترس نیستند، درحالی‌که ویژگی‌های دیگر بازطراحی شده‌اند و عملکرد متفاوتی دارند. اگر این ویژگی‌ها برای برنامه‌تان مهم است، ممکن است تصمیم بگیرید فوراً انتقال ندهید. در بسیاری از موارد، این ویژگی‌ها ممکن است برای برنامه‌تان مهم نباشد یا ممکن است جایگزین‌های آسانی وجود داشته باشد که به شما امکان می‌دهد انتقال را ادامه دهید.

تفاوت‌های سمت سرور

سرویس اصلی Identity Toolkit با میاناهای برنامه‌سازی کاربردی REST زیربنایی، منطق اعتبارسنجی حساب، و پایگاه داده کاربر اصلی فقط به‌روزرسانی‌های جزئی داشته‌اند. اما برخی‌از ویژگی‌ها و نحوه ادغام Identity Platform در سرویس شما تغییر کرده است.

  • ارائه‌دهندگان هویت

    Paypal و AOL پشتیبانی نمی‌شوند. کاربرانی که حساب‌های این ارائه‌دهندگان هویت را دارند همچنان می‌توانند با جریان بازیابی گذرواژه به سیستم برنامه شما وارد شوند و برای حسابشان گذرواژه تنظیم کنند.

  • کتابخانه‌های سرور

    درحال‌حاضر، کیت‌های توسعه نرم‌افزار سرپرست برای Java،‏ Node.js،‏ Python،‏ Go، و C#‎ دردسترس است.

  • ایمیل‌های مدیریت حساب

    پیام‌های بازنشانی گذرواژه، درستی‌سنجی ایمیل، و تغییر ایمیل را می‌توان ازطریق Firebase یا از سرور ایمیل خود توسعه‌دهنده انجام داد. درحال‌حاضر، الگوهای ایمیل فقط سفارشی‌سازی محدودی را ازطریق واسط کاربر ارائه می‌دهند، اما می‌توان آن‌ها را با کیت‌های توسعه نرم‌افزار سرپرست بیشتر سفارشی‌سازی کرد.

  • تأیید تغییر نشانی ایمیل

    در Identity Toolkit، وقتی کاربری تصمیم می‌گیرد نشانی ایمیل خود را تغییر دهد، ایمیلی به نشانی جدید ارسال می‌شود که حاوی پیوندی برای ادامه روند تغییر نشانی ایمیل است.

    Firebase تغییر نشانی ایمیل را با ارسال ایمیل لغو به نشانی ایمیل قدیمی با پیوندی برای برگرداندن تغییر تأیید می‌کند.

  • عرضه «صفحه جزئیات مشکل»

    Identity Toolkit این قابلیت را داشت که ارائه‌دهندگان هویت را به‌تدریج به سیستم ورود به سیستم شما اضافه کند تا بتوانید تأثیر آن را بر درخواست‌های پشتیبانی خود آزمایش کنید. این ویژگی در «اصالت‌سنجی Firebase» برداشته شد.

تفاوت‌های سمت کارخواه

در Identity Platform، ویژگی‌های ارائه‌شده توسط Google Identity Toolkit به دو مؤلفه تقسیم می‌شوند:

  • کیت‌های توسعه نرم‌افزار کارخواه و سرور

    در Identity Platform، عملکرد ارائه‌شده توسط Identity Toolkit REST API در کیت‌های توسعه نرم‌افزار مشتری دردسترس برای Android،‏ iOS، و JavaScript بسته‌بندی شده است. می‌توانید از کیت توسعه نرم‌افزار برای ورود به سیستم و ثبت‌نام کاربران، دسترسی به اطلاعات نمایه کاربر، پیوند دادن، به‌روزرسانی، و حذف حساب‌ها، و بازنشانی گذرواژه‌ها بااستفاده از کیت توسعه نرم‌افزار کارخواه به‌جای برقراری ارتباط با سرویس پس‌بست ازطریق تماس‌های REST استفاده کنید.

  • ابزاره رابط کاربری

    همه جریان‌های رابط کاربری که ورود به سیستم، ثبت‌نام، بازیابی گذرواژه، و پیوند دادن حساب را مدیریت می‌کنند بااستفاده از «کیت‌های توسعه نرم‌افزار کارخواه» بازسازی شده‌اند و به‌صورت ابزاره ورود به سیستم بسته‌بندی شده‌اند. این کیت‌های توسعه نرم‌افزار به‌صورت متن‌باز برای iOS، Android، و وب دردسترس هستند و به شما امکان می‌دهند جریان‌ها را به‌طور کامل و به روش‌هایی که با Identity Toolkit ممکن نیست سفارشی‌سازی کنید.

تفاوت‌های دیگر عبارت‌اند از:

  • جلسه‌ها و انتقال

    چون جلسه‌ها در Identity Toolkit و Identity Platform به‌طور متفاوتی مدیریت می‌شوند، جلسه‌های موجود کاربران شما پس‌از ارتقای کیت توسعه نرم‌افزار پایان می‌یابند و کاربران شما باید دوباره به سیستم وارد شوند.

قبل‌از شروع

قبل‌از اینکه بتوانید از Identity Toolkit به Identity Platform مهاجرت کنید، باید:

  1. کنسول Cloud را باز کنید و پروژه Identity Toolkit خود را انتخاب کنید.

  2. از Marketplace، به Identity Platform بروید و «فعال کردن Identity Platform» را انتخاب کنید

  3. صفحه حساب‌های سرویس را باز کنید. در اینجا می‌توانید حساب سرویسی را که قبلاً برای Identity Toolkit پیکربندی کرده‌اید ببینید.

  4. در کنار حساب سرویس، روی > ایجاد کلید کلیک کنید. سپس در کادر گفتگوی ایجاد کلید خصوصی، نوع کلید را روی JSON تنظیم کنید و روی ایجاد کلیک کنید. فایل JSON حاوی اطلاعات کاربری حساب سرویس شما بارگیری می‌شود. برای مقداردهی اولیه کیت توسعه نرم‌افزار در مرحله بعد به این مورد نیاز خواهید داشت.

  5. به کنسول Cloud برگردید. در بخش «ارائه‌دهندگان»، در روش ورود به سیستم «ایمیل/گذرواژه»، صفحه الگوهای ایمیل را باز کنید. سپس می‌توانید الگوهای برنامه‌تان را سفارشی‌سازی کنید.

    در Identity Toolkit، وقتی کاربران گذرواژه‌ها را بازنشانی می‌کردند، نشانی‌های ایمیل را تغییر می‌دادند، یا نشانی‌های ایمیلشان را به‌تأیید می‌رساندند، باید کد OOB را از سرور Identity Toolkit دریافت می‌کردید و سپس کد را ازطریق ایمیل برای کاربران ارسال می‌کردید. Identity Platform ایمیل‌ها را براساس الگوهایی که پیکربندی می‌کنید ارسال می‌کند و به اقدام دیگری نیاز نیست.

  6. اختیاری: اگر لازم است به سرویس‌های Identity Platform در سرورتان دسترسی داشته باشید، کیت توسعه نرم‌افزار Firebase را نصب کنید.

    1. می‌توانید کیت «سرپرست SDK‏ Node.js» را با npm نصب کنید:

      $ npm init
      $ npm install --save firebase-admin
      
    2. در کدتان، می‌توانید بااستفاده از موارد زیر به Firebase دسترسی پیدا کنید:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

سپس، مراحل انتقال را برای پلاتفرم برنامه‌تان تکمیل کنید: Android، iOS، وب.

سرورها و جاوا اسکریپت

تغییرات قابل‌توجه

تفاوت‌های دیگری نیز در پیاده‌سازی وب Identity Platform از Identity Toolkit وجود دارد.

  • مدیریت جلسه وب

    قبلاً وقتی کاربری بااستفاده از ابزاره Identity Toolkit اصالت‌سنجی می‌شد، کوکی‌ای برای کاربر تنظیم می‌شد که برای راه‌اندازی جلسه استفاده می‌شد. این کوکی دو هفته عمر داشت و برای این استفاده می‌شد که کاربر بتواند از ابزارک مدیریت حساب برای تغییر گذرواژه و نشانی ایمیل استفاده کند. برخی‌از سایت‌ها از این کوکی برای اصالت‌سنجی همه درخواست‌های صفحه دیگر در سایت استفاده می‌کردند. سایت‌های دیگر از کوکی برای ایجاد کوکی‌های خودشان ازطریق سیستم مدیریت کوکی چارچوبشان استفاده کردند.

    کیت‌های توسعه نرم‌افزار کارخواه Identity Platform اکنون نشان‌های شناسه را مدیریت می‌کنند و با پسوند Identity Platform کار می‌کنند تا جلسه را تازه نگه دارند. وقتی تغییرات مهمی در حساب (مثل تغییر گذرواژه کاربر) رخ می‌دهد، پس‌زمینه جلسه‌ها را منقضی می‌کند. نشان‌های شناسه به‌طور خودکار به‌عنوان کوکی در کارخواه وب تنظیم نمی‌شوند و فقط یک ساعت طول عمر دارند. مگر اینکه بخواهید جلسه‌ها فقط یک ساعت باشند، نشان‌های شناسه برای استفاده به‌عنوان کوکی برای اعتبارسنجی همه درخواست‌های صفحه‌تان مناسب نیستند. درعوض، باید شنونده‌ای راه‌اندازی کنید تا وقتی کاربر به سیستم وارد می‌شود، کد شناسه را دریافت کند، کد را اعتبارسنجی کند، و کوکی خودتان را ازطریق سیستم مدیریت کوکی چارچوبتان ایجاد کند.

    باید طول عمر جلسه کوکی را براساس نیازهای امنیتی برنامه‌تان تنظیم کنید.

  • جریان ورود به سیستم وب

    قبلاً، وقتی ورود به سیستم شروع می‌شد، کاربران به accountchooser.com هدایت می‌شدند تا مشخص شود کاربر می‌خواهد از چه شناسه‌ای استفاده کند. جریان میانای کاربری Identity Platform اکنون با فهرستی از روش‌های ورود به سیستم شروع می‌شود، ازجمله گزینه ایمیل که برای وب به accountchooser.com می‌رود و در Android از hintRequest API استفاده می‌کند. علاوه‌براین، دیگر نشانی‌های ایمیل در واسط کاربر الزامی نیستند. این کار پشتیبانی از کاربران ناشناس، کاربران با اصالت‌سنجی سفارشی، یا کاربران ارائه‌دهندگانی را که نشانی ایمیل الزامی نیست آسان‌تر می‌کند.

  • ابزارک مدیریت حساب

    این ابزاره واسط کاربری‌ای برای کاربران فراهم می‌کند تا نشانی‌های ایمیل را تغییر دهند، گذرواژه را تغییر دهند، یا پیوند حساب‌هایشان را از ارائه‌دهندگان هویت قطع کنند. این ویژگی فعلاً درحال توسعه است.

  • دکمه/ ابزاره ورود به سیستم

    ابزارک‌هایی مثل دکمه ورود به سیستم و کارت کاربر دیگر ارائه نمی‌شوند. این‌ها را می‌توان به‌راحتی بااستفاده از Firebase Authentication API ساخت.

  • signOutUrl وجود ندارد

    باید firebase.auth.signOut() را فراخوانی کنید و فراخوان برگشتی را مدیریت کنید.

  • oobActionUrl وجود ندارد

    اکنون ارسال ایمیل توسط Identity Platform انجام می‌شود و در کنسول Firebase پیکربندی شده است.

  • سفارشی‌سازی CSS

    ابزاره واسط کاربر از سبک Material Design Lite استفاده می‌کند که پویانمایی‌های «طراحی مواد» را به‌طور پویا اضافه می‌کند.

مرحله ۱: تغییر دادن کد سرور

  1. اگر سرورتان برای مدیریت جلسه‌های کاربر وب به کد Identity Toolkit (معتبر برای دو هفته) متکی است، باید سرور را تبدیل کنید تا از کوکی جلسه خودش استفاده کند.

    1. نقطه پایانی را برای اعتبارسنجی کد شناسه و تنظیم کوکی جلسه برای کاربر پیاده‌سازی کنید. برنامه کارخواه، کد Firebase ID را به این نقطه پایانی ارسال می‌کند.
    2. اگر درخواست ورودی حاوی کوکی جلسه خودتان باشد، می‌توانید کاربر را اصالت‌سنجی‌شده درنظر بگیرید. درغیراین‌صورت، درخواست را به‌عنوان درخواست تأییدنشده درنظر بگیرید.
    3. اگر نمی‌خواهید هیچ‌یک از کاربرانتان جلسه‌های ورود به سیستم فعلی‌شان را ازدست بدهند، باید دو هفته صبر کنید تا همه توکن‌های Identity Toolkit منقضی شوند، یا اعتبارسنجی توکن دوگانه را برای برنامه وب خود انجام دهید (همان‌طور که در مرحله ۳ در زیر توضیح داده شده است).
  2. سپس، چون کدهای شناسه با کدهای Identity Toolkit متفاوت است، باید منطق اعتبارسنجی کدتان را به‌روز کنید. Admin SDK را در سرورتان نصب کنید؛ یا اگر از زبانی استفاده می‌کنید که Admin SDK از آن پشتیبانی نمی‌کند، کتابخانه اعتبارسنجی توکن JWT را برای محیطتان بارگیری کنید و توکن را به‌درستی اعتبارسنجی کنید.

  3. وقتی برای اولین‌بار به‌روزرسانی‌های بالا را انجام می‌دهید، ممکن است همچنان مسیرهای کدی داشته باشید که به کدهای Identity Toolkit متکی باشند. اگر برنامه‌های iOS یا Android دارید، کاربران باید به نسخه جدید برنامه ارتقا دهند تا مسیرهای کد جدید کار کند. اگر نمی‌خواهید کاربرانتان را مجبور به به‌روزرسانی برنامه‌تان کنید، می‌توانید منطق درستی‌سنجی سرور دیگری اضافه کنید که کد را بررسی کند و تعیین کند که آیا برای درستی‌سنجی کد باید از «کیت توسعه نرم‌افزار Firebase» استفاده کند یا «کیت توسعه نرم‌افزار Identity Toolkit». اگر فقط برنامه وب دارید، همه درخواست‌های اصالت‌سنجی جدید به Identity Platform منتقل خواهد شد و بنابراین فقط باید از روش‌های درستی‌سنجی کد Id استفاده کنید.

مرجع میانای برنامه‌سازی کاربردی وب را ببینید.

مرحله ۲: به‌روزرسانی HTML

  1. کد مقداردهی اولیه را به برنامه‌تان اضافه کنید:

    1. پروژه‌تان را در کنسول Cloud باز کنید.
    2. در صفحه ارائه‌دهندگان، روی جزئیات راه‌اندازی برنامه کلیک کنید. تکه‌کدی که Identity Platform را مقداردهی اولیه می‌کند نمایش داده می‌شود.
    3. قطعه کد مقداردهی اولیه را کپی کنید و در صفحه وب خود جای‌گذاری کنید.
  2. افزودن ابزاره اصالت‌سنجی به برنامه:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. کیت توسعه نرم‌افزار Identity Toolkit را از برنامه‌تان بردارید.

  4. اگر برای مدیریت جلسه به کد شناسه Identity Toolkit متکی بودید، باید تغییرات زیر را در سمت کارخواه اعمال کنید:

    1. پس‌از ورود موفق به سیستم با Identity Platform، با فراخوانی firebase.auth().currentUser.getToken()، یک شناسه توکن دریافت کنید.

    2. نماد شناسه را به سرور زیرینه ارسال کنید، آن را اعتبارسنجی کنید، و کوکی جلسه خودتان را صادر کنید.

      هنگام انجام عملیات حساس یا ارسال درخواست‌های ویرایش اصالت‌سنجی‌شده به سرور، صرفاً به کوکی جلسه تکیه نکنید. باید محافظت اضافی دربرابر جعل درخواست بین‌سایتی (CSRF) ارائه دهید.

      اگر چارچوب شما محافظت CSRF ارائه نمی‌دهد، یکی از راه‌های جلوگیری از حمله این است که بااستفاده از getToken()، یک شناسه برای کاربر واردشده به سیستم دریافت کنید و این شناسه را در هر درخواست بگنجانید (کوکی جلسه نیز به‌طور پیش‌فرض ارسال خواهد شد). سپس آن کد را بااستفاده از Admin SDK علاوه‌بر بررسی کوکی جلسه که چارچوب باطن شما تکمیل کرده است، اعتبارسنجی می‌کنید. این کار موفقیت حملات «جعل درخواست بین‌سایتی» را دشوارتر می‌کند، زیرا کد شناسه فقط بااستفاده از فضای ذخیره‌سازی وب ذخیره می‌شود و هرگز در کوکی ذخیره نمی‌شود.

    3. نشان‌های Identity Toolkit به‌مدت دو هفته معتبر هستند. ممکن است بخواهید به صدور توکن‌هایی که دو هفته دوام دارند ادامه دهید، یا ممکن است بخواهید آن را براساس الزامات امنیتی برنامه‌تان طولانی‌تر یا کوتاه‌تر کنید. وقتی کاربر از سیستم خارج می‌شود، کوکی جلسه را پاک کنید.

مرحله ۳: به‌روزرسانی نشانی‌های وب تغییرمسیر IDP

  1. در کنسول Cloud، بخش ارائه‌دهندگان را باز کنید.

  2. برای هر ارائه‌دهنده ورود به سیستم مشارکتی که پشتیبانی می‌کنید، کارهای زیر را انجام دهید:

    1. روی نام ارائه‌دهنده ورود به سیستم کلیک کنید.
    2. شناسه URI هدایت OAuth را کپی کنید.
    3. در کنسول توسعه‌دهنده ارائه‌دهنده ورود به سیستم، URI هدایت OAuth را به‌روز کنید.

Android

مرحله ۱: افزودن Identity Platform به برنامه با Firebase

  1. کنسول Cloud را باز کنید و پروژه Identity Toolkit را انتخاب کنید.

  2. در صفحه «ارائه‌دهندگان»، روی جزئیات راه‌اندازی برنامه کلیک کنید، برگه Android را انتخاب کنید، و سپس روی شروع به کار در Firebase کلیک کنید. در کادر گفتگوی «افزودن Firebase»، نام بسته برنامه و اثر انگشت گواهینامه امضا را ارائه دهید و روی افزودن برنامه کلیک کنید. سپس فایل پیکربندی google-services.json در رایانه‌تان بارگیری می‌شود.

  3. فایل پیکربندی را در دایرکتوری ریشه واحد برنامه Android کپی کنید. این فایل پیکربندی حاوی اطلاعات پروژه و کارخواه Google OAuth است.

  4. در فایل build.gradle در سطح پروژه (<var>your-project</var>/build.gradle)، نام بسته برنامه‌تان را در بخش defaultConfig مشخص کنید:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. همچنین در فایل build.gradle سطح پروژه، وابستگی‌ای برای گنجاندن افزونه google-services اضافه کنید:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. در فایل build.gradle سطح برنامه (<var>my-project</var>/<var>app-module</var>/build.gradle)، خط زیر را بعداز افزایه Android Gradle اضافه کنید تا افزایه google-services فعال شود:

    apply plugin: 'com.android.application'
    // Add this line
    apply plugin: 'com.google.gms.google-services'
    

    افزونه google-services از فایل google-services.json برای پیکربندی برنامه شما جهت استفاده از Firebase استفاده می‌کند.

  7. همچنین در فایل build.gradle در سطح برنامه، وابستگی «اصالت‌سنجی Firebase» را اضافه کنید:

    compile 'com.google.firebase:firebase-auth:25.0.0'
    compile 'com.google.android.gms:play-services-auth:22.0.0'
    

مرحله ۲: برداشتن Identity Toolkit SDK

  1. پیکربندی Identity Toolkit را از فایل AndroidManifest.xml بردارید. این اطلاعات در فایل google-service.json گنجانده شده است و توسط افزونه google-services بار می‌شود.
  2. کیت توسعه نرم‌افزار Identity Toolkit را از برنامه‌تان بردارید.

مرحله ۳: FirebaseUI را به برنامه‌تان اضافه کنید

  1. FirebaseUI Auth را به برنامه‌تان اضافه کنید.

  2. در برنامه‌تان، فراخوانی‌های Identity Toolkit SDK را با فراخوانی‌های FirebaseUI جایگزین کنید.

iOS

مرحله ۱: Firebase را به برنامه‌تان اضافه کنید

  1. با اجرای فرمان‌های زیر، کیت توسعه نرم‌افزار کارخواه را به برنامه‌تان اضافه کنید:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. کنسول Cloud را باز کنید و پروژه Identity Toolkit را انتخاب کنید.

  3. در صفحه «ارائه‌دهندگان»، روی جزئیات راه‌اندازی برنامه کلیک کنید، برگه iOS را انتخاب کنید، و سپس روی شروع به کار در Firebase کلیک کنید. در کادر گفتگوی «افزودن Firebase»، نام بسته برنامه و اثر انگشت گواهینامه امضای آن را ارائه دهید و روی افزودن برنامه کلیک کنید. سپس فایل پیکربندی google-services.json در رایانه‌تان بارگیری می‌شود. در کادر گفتگوی «افزودن Firebase»، شناسه بسته ترکیبی و شناسه App Store برنامه‌تان را ارائه دهید و سپس روی افزودن برنامه کلیک کنید. سپس فایل پیکربندی GoogleService-Info.plist در رایانه‌تان بارگیری می‌شود. اگر چند شناسه بسته ترکیبی در پروژه‌تان دارید، هر شناسه بسته ترکیبی باید در کنسول Firebase متصل شود تا بتواند فایل GoogleService-Info.plist خودش را داشته باشد.

  4. فایل پیکربندی را در ریشه پروژه Xcode خود کپی کنید و آن را به همه هدف‌ها اضافه کنید.

مرحله ۲: برداشتن Identity Toolkit SDK

  1. GoogleIdentityToolkit را از Podfile برنامه‌تان بردارید.
  2. فرمان pod install را اجرا کنید.

مرحله ۳: FirebaseUI را به برنامه‌تان اضافه کنید

  1. FirebaseUI Auth را به برنامه‌تان اضافه کنید.

  2. در برنامه‌تان، فراخوانی‌های Identity Toolkit SDK را با فراخوانی‌های FirebaseUI جایگزین کنید.