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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • اصالت‌سنجی GitHub و ناشناس

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    در «اصالت‌سنجی Firebase»، عملکرد ارائه‌شده توسط Identity Toolkit 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. صفحه حساب‌های سرویس را باز کنید. در اینجا می‌توانید حساب سرویسی را که قبلاً برای Identity Toolkit پیکربندی کرده‌اید ببینید.

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

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

    در Identity Toolkit، وقتی کاربران گذرواژه‌ها را بازنشانی می‌کردند، نشانی‌های ایمیل را تغییر می‌دادند، و نشانی‌های ایمیلشان را درستی‌سنجی می‌کردند، باید کد OOB را از سرور Identity Toolkit دریافت می‌کردید و سپس کد را ازطریق ایمیل برای کاربران ارسال می‌کردید. 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 ID برای استفاده به‌عنوان کوکی برای اعتبارسنجی همه درخواست‌های صفحه شما مناسب نیستند. درعوض، باید شنونده‌ای راه‌اندازی کنید تا وقتی کاربر به سیستم وارد می‌شود، کد Firebase ID را دریافت کند، کد را درستی‌سنجی کند، و کوکی خودتان را ازطریق سیستم مدیریت کوکی چارچوبتان ایجاد کند.

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

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

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

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

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

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

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

  • signOutUrl وجود ندارد

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

  • oobActionUrl وجود ندارد

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

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

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

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

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

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

  3. وقتی برای اولین‌بار به‌روزرسانی‌های بالا را انجام می‌دهید، ممکن است همچنان مسیرهای کدی داشته باشید که به کدهای Identity Toolkit متکی باشند. اگر برنامه‌های 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 token دریافت کنید.

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

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

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

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

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

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

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

    1. روی نام ارائه‌دهنده ورود به سیستم کلیک کنید.
    2. شناسه URI هدایت OAuth را کپی کنید.
    3. در کنسول توسعه‌دهنده ارائه‌دهنده ورود به سیستم، URI هدایت 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'
    

مرحله ۲: حذف 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. با اجرای فرمان‌های زیر، «کیت توسعه نرم‌افزار 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 خود کپی کنید و آن را به همه هدف‌ها اضافه کنید.

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

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

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

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

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