انتقال از «ابزارک هویت Google» به «اصالت‌سنجی Firebase»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • احراز هویت ناشناس و GitHub

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

در Firebase، ویژگی‌های ارائه‌شده توسط «ابزار هویت Google» به دو جزء تقسیم می‌شوند:

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

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

  • FirebaseUI Auth

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

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

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

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

قبل‌از شروع

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

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

  2. برای باز کردن صفحه IAM و سرپرست، روی > اجازه‌ها کلیک کنید.

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

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

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

    در «ابزارک هویت»، وقتی کاربران گذرواژه‌ها را بازنشانی می‌کردند، نشانی‌های ایمیل را تغییر می‌دادند، و نشانی‌های ایمیلشان را درستی‌سنجی می‌کردند، باید کد OOB را از سرور «ابزارک هویت» دریافت می‌کردید و سپس کد را ازطریق ایمیل برای کاربران ارسال می‌کردید. ‫Firebase ایمیل‌ها را براساس الگوهایی که پیکربندی می‌کنید ارسال می‌کند و به کنش‌های اضافی نیاز ندارد.

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

    1. می‌توانید واحد Firebase 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، وب.

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

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

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

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

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

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

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

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

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

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

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

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

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

  • بدون signOutUrl

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

  • No oobActionUrl

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

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

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

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

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

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

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

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

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

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

    1. پروژه‌تان را در کنسول Firebase باز کنید.
    2. در صفحه «نمای کلی»، روی افزودن برنامه کلیک کنید، سپس روی افزودن Firebase به برنامه وب کلیک کنید. تکه‌کدی که Firebase را مقداردهی اولیه می‌کند نمایش داده می‌شود.
    3. تکه کد مقداردهی اولیه را در صفحه وب خود کپی و جای‌گذاری کنید.
  2. FirebaseUI Auth را به برنامه‌تان اضافه کنید:

    <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. پس‌از ورود موفق به سیستم با Firebase، با فراخوانی firebase.auth().currentUser.getToken()، یک کد Firebase ID دریافت کنید.

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

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

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

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

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

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

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

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

Android

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

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

  2. در صفحه «نمای کلی»، روی افزودن برنامه و سپس روی افزودن Firebase به برنامه Android کلیک کنید. در چارگوش گفتگوی «افزودن 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)، خط زیر را به پایین اضافه کنید تا افزایه google-services فعال شود:

    // Add to the bottom of the file
    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. با اجرای فرمان‌های زیر، «کیت توسعه نرم‌افزار Firebase» را به برنامه‌تان اضافه کنید:

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

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

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

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

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

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

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

  2. در برنامه‌تان، فراخوانی‌های «کیت توسعه نرم‌افزار ابزارک هویت» را با فراخوانی‌های FirebaseUI جایگزین کنید.