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

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

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

«پلاتفرم هویت» ازقبل بهبودهای ویژگی قابل‌توجهی نسبت به «ابزار هویت Google» دارد:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • عرضه IDP

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

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

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

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

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

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

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

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

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

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

قبل‌از شروع

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

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

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

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

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

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

    در «ابزارک هویت»، وقتی کاربران گذرواژه‌ها را بازنشانی می‌کردند، نشانی‌های ایمیل را تغییر می‌دادند، یا نشانی‌های ایمیل را درستی‌سنجی می‌کردند، باید کد OOB را از سرور «ابزارک هویت» دریافت می‌کردید و سپس کد را ازطریق ایمیل برای کاربران ارسال می‌کردید. 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 وجود دارد.

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

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

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

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

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

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

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

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

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

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

  • بدون signOutUrl

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

  • oobActionUrl وجود ندارد

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

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

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

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

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

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

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

مرجع Web 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. «کیت توسعه نرم‌افزار Identity Toolkit» را از برنامه‌تان بردارید.

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

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

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

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

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

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

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

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

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

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

Android

مرحله ۱: افزودن «پلاتفرم هویت» به برنامه با 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'
    

مرحله ۲: برداشتن «کیت توسعه نرم‌افزار ابزار هویت»

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

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

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

  2. در برنامه‌تان، فراخوانی‌های «کیت توسعه نرم‌افزار ابزارک هویت» را با فراخوانی‌های 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 را به برنامه‌تان اضافه کنید.

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