مهاجرت از Google Identity Toolkit به Google Cloud's Identity Platform

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

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

پلتفرم Identity در حال حاضر نسبت به Google Identity Toolkit پیشرفت‌های قابل توجهی در ویژگی‌های خود دارد:

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

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

  • روش‌های جدید احراز هویت

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

  • با توافق‌نامه‌های سطح خدمات و پشتیبانی ابری، با اطمینان مقیاس‌پذیر شوید

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

  • دسترسی به تمام فایربیس

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

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

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

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

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

  • SDK های جدید

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

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

    با استفاده از Identity Toolkit، برنامه‌ها وضعیت جلسه خود را بر اساس رویداد احراز هویت اولیه از Identity Toolkit ایجاد می‌کردند. پلتفرم Identity از یک سرویس backend استفاده می‌کند که یک توکن refresh را که از رویداد احراز هویت ایجاد شده است، می‌گیرد و آن را با توکن‌های دسترسی یک ساعته برای اندروید، iOS و جاوا اسکریپت مبادله می‌کند. هنگامی که کاربر رمز عبور خود را تغییر می‌دهد، توکن‌های refresh دیگر قادر به تولید توکن‌های دسترسی جدید نخواهند بود و در نتیجه دسترسی تا زمانی که کاربر دوباره در آن دستگاه احراز هویت شود، غیرفعال می‌شود.

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

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

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

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

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

    پی‌پال و AOL پشتیبانی نمی‌شوند. کاربرانی که حساب کاربری از این IDPها دارند، همچنان می‌توانند با استفاده از فرآیند بازیابی رمز عبور وارد برنامه شما شوند و برای حساب خود رمز عبور تعیین کنند.

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

    در حال حاضر، SDK های مدیریتی برای جاوا، Node.js، پایتون، Go و C# در دسترس هستند.

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

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

  • تایید تغییر آدرس ایمیل

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

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

  • اجرای طرح آوارگی داخلی

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

اختلافات طرف مشتری

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

  • SDK های کلاینت و سرور

    در پلتفرم Identity، قابلیت‌های ارائه شده توسط REST API مربوط به Identity Toolkit در SDKهای کلاینت که برای اندروید، iOS و جاوا اسکریپت موجود هستند، بسته‌بندی شده‌اند. شما می‌توانید از SDK برای ورود و ثبت‌نام کاربران؛ دسترسی به اطلاعات پروفایل کاربر؛ اتصال، به‌روزرسانی و حذف حساب‌ها؛ و تنظیم مجدد رمزهای عبور با استفاده از SDK کلاینت به جای ارتباط با سرویس بک‌اند از طریق فراخوانی‌های REST استفاده کنید.

  • ویجت رابط کاربری

    تمام جریان‌های رابط کاربری که ورود، ثبت‌نام، بازیابی رمز عبور و پیوند حساب را مدیریت می‌کنند، با استفاده از SDKهای کلاینت بازسازی شده و به عنوان یک ویجت ورود بسته‌بندی شده‌اند. آن‌ها به عنوان SDKهای متن‌باز برای iOS ، اندروید و وب در دسترس هستند و شما را قادر می‌سازند تا جریان‌ها را به طور کامل سفارشی کنید، به روش‌هایی که با Identity Toolkit امکان‌پذیر نیست.

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

  • جلسات و مهاجرت

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

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

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

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

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

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

  4. در کنار حساب سرویس، روی > Create key کلیک کنید. سپس، در کادر محاوره‌ای Create private key ، نوع کلید را روی JSON تنظیم کنید و روی Create کلیک کنید. یک فایل JSON حاوی اطلاعات حساب سرویس شما دانلود می‌شود. برای مقداردهی اولیه SDK در مرحله بعدی به آن نیاز خواهید داشت.

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

    در Identity Toolkit، وقتی کاربران رمز عبور را تغییر می‌دادند، آدرس ایمیل خود را تغییر می‌دادند یا آدرس ایمیل خود را تأیید می‌کردند، شما باید یک کد OOB از سرور Identity Toolkit دریافت می‌کردید و سپس کد را از طریق ایمیل برای کاربران ارسال می‌کردید. Identity Platform ایمیل‌ها را بر اساس قالب‌هایی که شما پیکربندی می‌کنید، بدون نیاز به هیچ اقدام اضافی ارسال می‌کند.

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

    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')
      });
      

در مرحله بعد، مراحل مهاجرت را برای پلتفرم برنامه خود تکمیل کنید: اندروید ، iOS ، وب .

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

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

تعدادی تفاوت دیگر در پیاده‌سازی وب پلتفرم Identity از Identity Toolkit وجود دارد.

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

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

    کیت‌های توسعه نرم‌افزار (SDK) کلاینت پلتفرم Identity اکنون توکن‌های شناسه (ID tokens) را مدیریت می‌کنند و با backend پلتفرم Identity همکاری می‌کنند تا session را به‌روز نگه دارند. backend زمانی که تغییرات مهم حساب (مانند تغییر رمز عبور کاربر) رخ دهد، sessionها را منقضی می‌کند. توکن‌های شناسه (ID tokens) به طور خودکار به عنوان کوکی در کلاینت وب تنظیم نمی‌شوند و فقط یک ساعت طول عمر دارند. مگر اینکه بخواهید sessionها فقط یک ساعت باشند، توکن‌های شناسه برای استفاده به عنوان کوکی جهت اعتبارسنجی تمام درخواست‌های صفحه شما مناسب نیستند. در عوض، باید یک listener برای زمانی که کاربر وارد سیستم می‌شود، توکن شناسه را دریافت می‌کند ، توکن را اعتبارسنجی می‌کند و کوکی خود را از طریق سیستم مدیریت کوکی فریم‌ورک خود ایجاد می‌کند، تنظیم کنید .

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

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

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

  • ویجت مدیریت حساب

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

  • دکمه/ویجت ورود

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

  • بدون signOutUrl

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

  • بدون آدرس اقدام oob

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

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

    ویجت رابط کاربری از استایل‌بندی Material Design Lite استفاده می‌کند که به صورت پویا انیمیشن‌های Material Design را اضافه می‌کند.

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

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

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

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

به مرجع API وب مراجعه کنید.

مرحله ۲: 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. SDK مربوط به Identity Toolkit را از برنامه خود حذف کنید.

  4. اگر برای مدیریت جلسه به توکن ID کیت ابزار هویت (Identity Toolkit ID token) متکی بوده‌اید، باید تغییرات زیر را در سمت کلاینت اعمال کنید:

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

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

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

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

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

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

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

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

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

اندروید

مرحله ۱: اضافه کردن پلتفرم Identity به برنامه خود با Firebase

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

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

  3. فایل پیکربندی را در دایرکتوری ریشه ماژول برنامه اندروید خود کپی کنید. این فایل پیکربندی شامل اطلاعات پروژه و کلاینت 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. در فایل app-level 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 سطح App، وابستگی Firebase Authentication را اضافه کنید:

    compile 'com.google.firebase:firebase-auth:24.0.1'
    compile 'com.google.android.gms:play-services-auth:21.5.0'
    

مرحله ۲: حذف SDK مربوط به Identity Toolkit

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

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

  1. FirebaseUI Auth را به برنامه خود اضافه کنید.

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

آی‌او‌اس

مرحله ۱: اضافه کردن فایربیس به برنامه

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

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

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

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

مرحله ۲: حذف SDK مربوط به Identity Toolkit

  1. GoogleIdentityToolkit از Podfile برنامه خود حذف کنید.
  2. دستور pod install را اجرا کنید.

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

  1. FirebaseUI Auth را به برنامه خود اضافه کنید.

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