ย้ายข้อมูลจาก Google Identity Toolkit ไปยังการตรวจสอบสิทธิ์ Firebase

Google Identity Toolkit เวอร์ชันล่าสุดได้เปิดตัวแล้วในชื่อการตรวจสอบสิทธิ์ของ Firebase นับจากนี้เป็นต้นไป งานฟีเจอร์ใน Identity Toolkit จะถูกระงับชั่วคราวและการพัฒนาฟีเจอร์ใหม่ทั้งหมดจะดำเนินการในการตรวจสอบสิทธิ์ Firebase เราขอแนะนำให้นักพัฒนา Identity Toolkit เปลี่ยนไปใช้การตรวจสอบสิทธิ์ของ Firebase โดยเร็วที่สุดสำหรับการใช้งานจริงสำหรับแอปพลิเคชันของตน อย่างไรก็ตาม Identity Toolkit จะยังคงทำงานต่อไปและจะไม่เลิกใช้งานหากไม่มีการประกาศเพิ่มเติม

ฟีเจอร์ใหม่

การตรวจสอบสิทธิ์ Firebase มีการปรับปรุงฟีเจอร์สำคัญๆ หลายอย่างผ่าน Google Identity Toolkit อยู่แล้ว ดังนี้

  • สิทธิ์เข้าถึง Firebase ทั้งหมด

    Firebase เป็นแพลตฟอร์มอุปกรณ์เคลื่อนที่ที่ช่วยให้คุณพัฒนาแอปคุณภาพสูง ขยายฐานผู้ใช้ และสร้างรายได้เพิ่มขึ้นได้อย่างรวดเร็ว Firebase ประกอบด้วย ฟีเจอร์เสริมที่คุณสามารถเลือกใช้ให้เข้ากับความต้องการ และ มีโครงสร้างพื้นฐานสำหรับ Analytics บนอุปกรณ์เคลื่อนที่ การรับส่งข้อความในระบบคลาวด์ ฐานข้อมูลแบบเรียลไทม์ พื้นที่เก็บข้อมูลไฟล์ โฮสติ้งแบบคงที่ การกำหนดค่าระยะไกล การรายงานข้อขัดข้องอุปกรณ์เคลื่อนที่ และ Android ทดสอบการทดสอบ

  • UI ที่อัปเดตแล้ว

    เราได้สร้างขั้นตอน UI ขึ้นใหม่ทั้งหมดโดยอิงตามการวิจัย UX ล่าสุดของ Google ซึ่งรวมถึงการกู้คืนรหัสผ่าน การลิงก์บัญชี ขั้นตอนการชี้แจงบัญชีใหม่/ที่มีอยู่ที่มักใช้เวลานานในการเขียนโค้ดและแก้ไขข้อบกพร่อง ผสานรวม Smart Lock สำหรับรหัสผ่าน บน Android ซึ่งช่วยปรับปรุง Conversion การลงชื่อเข้าใช้และการลงชื่อสมัครใช้ สำหรับแอปที่เข้าร่วมได้อย่างมาก นอกจากนี้ ยังรองรับการแก้ไขธีมง่ายๆ เพื่อให้เหมาะกับแอปพลิเคชันของคุณ และหากต้องการความสามารถในการปรับแต่งสูงสุด เวอร์ชัน Android และ iOS จึงเป็นโอเพนซอร์ส

  • การตั้งค่าเซิร์ฟเวอร์ที่ง่ายขึ้น

    เราทำให้นักพัฒนาซอฟต์แวร์ใช้การตรวจสอบสิทธิ์ Firebase ได้ง่ายขึ้น เราเห็นว่านักพัฒนาซอฟต์แวร์จำนวนมากเลือกที่จะไม่ใช้ขั้นตอนการกู้คืนบัญชี ทำให้ผู้ใช้ไม่สามารถกู้คืนบัญชีได้หากลืมรหัสผ่าน การตรวจสอบสิทธิ์ Firebase สามารถส่งการยืนยันอีเมล การรีเซ็ตรหัสผ่าน และข้อความรหัสผ่านที่เปลี่ยนแปลงไปให้กับผู้ใช้ และสามารถปรับแต่งข้อความให้กับผู้ใช้ได้อย่างง่ายดาย นอกจากนี้ คุณไม่จําเป็นต้องโฮสต์วิดเจ็ต UI สําหรับการเปลี่ยนเส้นทางโฮสต์และดำเนินการเปลี่ยนรหัสผ่านให้เสร็จเรียบร้อยอีกต่อไป

  • คอนโซลผู้ดูแลระบบแบบใหม่

    Firebase มีคอนโซลของนักพัฒนาซอฟต์แวร์แบบใหม่และส่วนการตรวจสอบสิทธิ์ให้คุณดู แก้ไข และลบผู้ใช้ได้ นี่จะเป็นตัวช่วยที่ดีในการแก้ไขข้อบกพร่องของขั้นตอนการลงชื่อเข้าใช้และการลงชื่อสมัครใช้ คอนโซลยังช่วยให้คุณกำหนดค่าวิธีการตรวจสอบสิทธิ์และปรับแต่งเทมเพลตอีเมลได้ด้วย

  • SDK ใหม่

    ตอนนี้ API เซิร์ฟเวอร์ของ Identity Toolkit ทั้งหมดมีให้บริการแล้วภายในไลบรารีของไคลเอ็นต์ของเรา (Android, iOS, เว็บ) นักพัฒนาซอฟต์แวร์จะลงชื่อเข้าใช้และลงชื่อสมัครใช้สำหรับผู้ใช้ทั้งเก่าและใหม่ เข้าถึงพร็อพเพอร์ตี้ผู้ใช้ ลิงก์ อัปเดต และลบบัญชี รีเซ็ตรหัสผ่าน และอื่นๆ ได้โดยไม่ต้องเชื่อมโยงกับ UI แบบคงที่ หากต้องการ คุณสามารถสร้างขั้นตอนการลงชื่อเข้าใช้ทั้งหมดด้วยตนเอง พร้อมสัมผัสประสบการณ์การใช้งานนอกเหนือจาก API นี้

  • การจัดการเซสชันสำหรับแอปบนอุปกรณ์เคลื่อนที่

    เมื่อใช้ Identity Toolkit แอปจะสร้างสถานะเซสชันของตนเองตามเหตุการณ์การตรวจสอบสิทธิ์เริ่มแรกจาก Identity Toolkit Firebase Auth ใช้บริการแบ็กเอนด์ที่ใช้โทเค็นการรีเฟรช ที่สร้างจากเหตุการณ์การตรวจสอบสิทธิ์ และแลกเปลี่ยนเป็นโทเค็นเพื่อการเข้าถึงความยาว 1 ชั่วโมงสำหรับ Android, iOS และ JavaScript เมื่อผู้ใช้เปลี่ยนรหัสผ่าน โทเค็นการรีเฟรชจะไม่สามารถสร้างโทเค็นเพื่อการเข้าถึงใหม่ได้อีกต่อไป ดังนั้นจึงมีการปิดการเข้าถึงจนกว่าผู้ใช้จะตรวจสอบสิทธิ์ในอุปกรณ์นั้นอีกครั้ง

  • การตรวจสอบสิทธิ์ GitHub แบบไม่ระบุชื่อ

    การตรวจสอบสิทธิ์ Firebase รองรับการตรวจสอบสิทธิ์ใหม่ 2 ประเภท ได้แก่ GitHub แบบไม่ระบุตัวตน คุณสามารถใช้การลงชื่อเข้าใช้โดยไม่ระบุชื่อเพื่อสร้างรหัสผู้ใช้ที่ไม่ซ้ำโดยไม่ต้องกำหนดให้ผู้ใช้ลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ เมื่อใช้ผู้ใช้ที่ไม่ระบุชื่อ ตอนนี้คุณสามารถเรียก API ที่ตรวจสอบสิทธิ์แล้ว ได้เหมือนกับที่ดำเนินการกับผู้ใช้ทั่วไป เมื่อผู้ใช้ตัดสินใจลงชื่อสมัครใช้บัญชี กิจกรรมทั้งหมดจะยังคงอยู่โดยใช้รหัสผู้ใช้เดียวกัน วิธีนี้เหมาะสำหรับสถานการณ์ต่างๆ เช่น รถเข็นช็อปปิ้งฝั่งเซิร์ฟเวอร์หรือแอปพลิเคชันใดๆ ที่คุณต้องการดึงดูดผู้ใช้ก่อนส่งผ่านขั้นตอนการลงชื่อสมัครใช้

ความแตกต่างของฟีเจอร์

ฟีเจอร์บางอย่างของ Identity Toolkit ยังไม่พร้อมใช้งานในการตรวจสอบสิทธิ์ Firebase ขณะที่ฟีเจอร์อื่นๆ ได้รับการออกแบบใหม่และทำงานแตกต่างออกไป คุณอาจเลือกที่จะไม่ย้ายข้อมูลทันทีหากฟีเจอร์เหล่านี้สำคัญต่อแอปของคุณ ในหลายกรณี ฟีเจอร์เหล่านี้อาจไม่สำคัญสำหรับแอปหรืออาจมีทางเลือกสำรองที่ช่วยให้คุณดำเนินการย้ายข้อมูลได้

ความแตกต่างของฝั่งเซิร์ฟเวอร์

บริการหลักของ Identity Toolkit ที่มี REST API ที่เกี่ยวข้อง, ตรรกะการตรวจสอบบัญชี และฐานข้อมูลผู้ใช้หลักได้รับการอัปเดตเพียงเล็กน้อยเท่านั้น แต่ฟีเจอร์บางอย่างและลักษณะการผสานรวมการตรวจสอบสิทธิ์ Firebase เข้ากับบริการได้มีการเปลี่ยนแปลง

  • ผู้ให้บริการข้อมูลประจำตัว

    ไม่รองรับ PayPal และ AOL ผู้ใช้ที่มีบัญชีจาก IdP เหล่านี้จะยังลงชื่อเข้าใช้แอปพลิเคชันด้วยขั้นตอนการกู้คืนรหัสผ่านและตั้งรหัสผ่านสำหรับบัญชีของตนเองได้

  • ไลบรารีของเซิร์ฟเวอร์

    ปัจจุบันมี Firebase Admin SDK พร้อมใช้งานสำหรับ Java, Node.js, Python, Go และ C#

  • อีเมลการจัดการบัญชี

    Firebase หรือจากเซิร์ฟเวอร์อีเมลของนักพัฒนาแอปเองก็ได้ โดยการรีเซ็ตรหัสผ่าน การยืนยันอีเมล และข้อความเปลี่ยนอีเมล ปัจจุบันเทมเพลตอีเมลของ Firebase มีการปรับแต่งอย่างจำกัด

  • การยืนยันการเปลี่ยนอีเมล

    ใน Identity Toolkit เมื่อผู้ใช้ตัดสินใจเปลี่ยนอีเมล ระบบจะส่งอีเมลไปยังอีเมลใหม่ที่มีลิงก์เพื่อดำเนินการเปลี่ยนแปลงอีเมลต่อ

    Firebase จะยืนยันการเปลี่ยนแปลงอีเมลโดยส่งอีเมลเพิกถอนไปยังอีเมลเดิมพร้อมลิงก์สำหรับเปลี่ยนกลับการเปลี่ยนแปลง

  • การเปิดตัว IDP

    Identity Toolkit สามารถค่อยๆ เพิ่มผู้ให้บริการข้อมูลประจำตัวลงในระบบลงชื่อเข้าใช้ เพื่อให้คุณสามารถทดสอบผลกระทบที่มีต่อคำขอการสนับสนุนได้ มีการนำฟีเจอร์นี้ออกจากการตรวจสอบสิทธิ์ Firebase

ความแตกต่างของฝั่งไคลเอ็นต์

ฟีเจอร์ของ Google Identity Toolkit ใน Firebase จะแบ่งออกเป็น 2 ส่วน ดังนี้

  • SDK การตรวจสอบสิทธิ์ของ Firebase

    ในการตรวจสอบสิทธิ์ Firebase ฟังก์ชัน REST API ของ Identity Toolkit นั้นรวมอยู่ใน SDK ของไคลเอ็นต์ซึ่งพร้อมใช้งานสำหรับ Android, iOS และ JavaScript คุณสามารถใช้ SDK เพื่อลงชื่อเข้าใช้และลงชื่อสมัครใช้ผู้ใช้ เข้าถึงข้อมูลโปรไฟล์ผู้ใช้ ลิงก์ อัปเดต และลบบัญชี รวมถึงรีเซ็ตรหัสผ่านโดยใช้ SDK ของไคลเอ็นต์แทนการสื่อสารกับบริการแบ็กเอนด์ผ่านการเรียก REST

  • การตรวจสอบสิทธิ์ FirebaseUI

    ขั้นตอน UI ทั้งหมดที่จัดการการลงชื่อเข้าใช้ การลงชื่อสมัครใช้ การกู้คืนรหัสผ่าน และการเชื่อมโยงบัญชีได้รับการสร้างขึ้นใหม่โดยใช้ SDK การตรวจสอบสิทธิ์ Frebase โดยมีให้ใช้งานในรูปแบบ SDK โอเพนซอร์สสำหรับ iOS และ Android เพื่อให้คุณปรับแต่งขั้นตอนได้ทั้งหมดในรูปแบบที่ทําไม่ได้ด้วย Identity Toolkit

ความแตกต่างเพิ่มเติมมีดังนี้

  • เซสชันและการย้ายข้อมูล

    เนื่องจากเซสชันมีการจัดการใน Identity Toolkit และ Firebase Authentication แตกต่างกัน เซสชันที่มีอยู่ของผู้ใช้ของคุณจะสิ้นสุดลงเมื่ออัปเกรด SDK และผู้ใช้จะต้องลงชื่อเข้าใช้อีกครั้ง

ก่อนเริ่มต้น

ก่อนที่จะย้ายข้อมูลจาก Identity Toolkit ไปยังการตรวจสอบสิทธิ์ Firebase คุณต้อง

  1. เปิดคอนโซล Firebase คลิกนำเข้าโปรเจ็กต์ Google แล้วเลือกโปรเจ็กต์ Identity Toolkit

  2. คลิก > สิทธิ์ เพื่อเปิดหน้า IAM และผู้ดูแลระบบ

  3. เปิดบัญชีบริการ คุณจะดูบัญชีบริการที่กำหนดค่าไว้ก่อนหน้านี้สำหรับ Identity Toolkit ได้

  4. คลิก > สร้างคีย์ข้างบัญชีบริการ จากนั้นในกล่องโต้ตอบสร้างคีย์ส่วนตัว ให้ตั้งค่าประเภทคีย์เป็น JSON และคลิกสร้าง ระบบจะดาวน์โหลดไฟล์ JSON ที่มีข้อมูลเข้าสู่ระบบของบัญชีบริการให้คุณ คุณจะต้องใช้คีย์นี้เพื่อเริ่มต้น SDK ในขั้นตอนถัดไป

  5. กลับไปที่คอนโซล Firebase เปิดหน้าเทมเพลตอีเมลในส่วนการตรวจสอบสิทธิ์ ในหน้านี้ ให้ปรับแต่งเทมเพลตอีเมลของแอป

    ใน Identity Toolkit เมื่อผู้ใช้รีเซ็ตรหัสผ่าน เปลี่ยนอีเมล และยืนยันอีเมลแล้ว คุณจะต้องรับรหัส OOB จากเซิร์ฟเวอร์ Identity Toolkit แล้วส่งรหัสให้ผู้ใช้ทางอีเมล Firebase จะส่งอีเมลตามเทมเพลตที่คุณกำหนดค่าไว้โดยไม่ต้องดำเนินการใดๆ เพิ่มเติม

  6. ไม่บังคับ: หากต้องการเข้าถึงบริการ Firebase บนเซิร์ฟเวอร์ ให้ติดตั้ง Firebase SDK

    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, เว็บ

เซิร์ฟเวอร์และ JavaScript

การเปลี่ยนแปลงที่สำคัญ

การใช้งาน Firebase จาก Identity Toolkit บนเว็บนั้นแตกต่างกันอีกมากมาย

  • การจัดการเซสชันของเว็บ

    ก่อนหน้านี้เมื่อผู้ใช้ตรวจสอบสิทธิ์โดยใช้วิดเจ็ต Identity Toolkit ระบบจะตั้งค่าคุกกี้ให้กับผู้ใช้ที่ใช้เปิดเครื่องเซสชัน คุกกี้นี้มีอายุการใช้งาน 2 สัปดาห์และใช้เพื่ออนุญาตให้ผู้ใช้ใช้วิดเจ็ตการจัดการบัญชีเพื่อเปลี่ยนรหัสผ่านและอีเมลได้ บางเว็บไซต์ใช้คุกกี้นี้ในการตรวจสอบสิทธิ์คำขอหน้าเว็บอื่นๆ ทั้งหมดในเว็บไซต์ เว็บไซต์อื่นๆ ใช้คุกกี้เพื่อสร้างคุกกี้ของตนเองผ่านระบบการจัดการคุกกี้ของเฟรมเวิร์ก

    ปัจจุบัน SDK ของไคลเอ็นต์ Firebase จะจัดการโทเค็นรหัส Firebase และทำงานร่วมกับแบ็กเอนด์ของการตรวจสอบสิทธิ์ Firebase เพื่อให้เซสชันมีข้อมูลล่าสุดอยู่เสมอ แบ็กเอนด์หมดอายุเซสชันเมื่อเกิดการเปลี่ยนแปลงที่สำคัญของบัญชี (เช่น การเปลี่ยนรหัสผ่านของผู้ใช้) โทเค็นรหัส Firebase ไม่ได้มีการตั้งค่าเป็นคุกกี้บนเว็บไคลเอ็นต์โดยอัตโนมัติ และมีอายุเพียง 1 ชั่วโมงเท่านั้น โทเค็นของ Firebase ID ไม่เหมาะที่จะใช้เป็นคุกกี้เพื่อตรวจสอบคำขอหน้าเว็บทั้งหมดได้ เว้นแต่ว่าคุณจะต้องการเซสชันที่ใช้เวลาเพียง 1 ชั่วโมง คุณจะต้องตั้งค่า Listener เมื่อผู้ใช้ลงชื่อเข้าสู่ระบบ รับโทเค็นรหัส Firebase ตรวจสอบโทเค็น และสร้างคุกกี้ของคุณเองผ่านระบบการจัดการคุกกี้ของเฟรมเวิร์ก

    คุณจะต้องตั้งค่าอายุการใช้งานเซสชันของคุกกี้ตามความต้องการด้านความปลอดภัยของแอปพลิเคชัน

  • ขั้นตอนการลงชื่อเข้าใช้เว็บ

    ก่อนหน้านี้ ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยัง accountchooser.com เมื่อเริ่มลงชื่อเข้าใช้เพื่อดูตัวระบุที่ผู้ใช้ต้องการใช้ ตอนนี้ขั้นตอนของ UI การตรวจสอบสิทธิ์ Firebase เริ่มต้นด้วยรายการวิธีการลงชื่อเข้าใช้ ซึ่งรวมถึงตัวเลือกอีเมลซึ่งจะไปที่ accountchooser.com สำหรับเว็บและใช้ hintRequest API ใน Android นอกจากนี้ คุณไม่จำเป็นต้องมีอีเมลใน UI ของ Firebase อีกต่อไป วิธีนี้ช่วยให้การสนับสนุนผู้ใช้ที่ไม่ระบุชื่อ ผู้ใช้การตรวจสอบสิทธิ์ที่กำหนดเอง หรือผู้ใช้จากผู้ให้บริการที่ไม่จำเป็นต้องใช้ที่อยู่อีเมลทำได้ง่ายขึ้น

  • วิดเจ็ตการจัดการบัญชี

    วิดเจ็ตนี้มี UI เพื่อให้ผู้ใช้เปลี่ยนอีเมล เปลี่ยนรหัสผ่าน หรือยกเลิกการลิงก์บัญชีจากผู้ให้บริการข้อมูลประจำตัว ซึ่งขณะนี้อยู่ระหว่าง การพัฒนา

  • ปุ่ม/วิดเจ็ตลงชื่อเข้าใช้

    ไม่มีวิดเจ็ต เช่น ปุ่มลงชื่อเข้าใช้และการ์ดผู้ใช้ให้บริการอีกต่อไป ซึ่งสร้างได้ง่ายๆ โดยใช้ Firebase Authentication API

  • ไม่มี signOutUrl

    คุณจะต้องโทรหา firebase.auth.signOut() และจัดการการติดต่อกลับ

  • ไม่มี oobActionUrl

    ตอนนี้ Firebase จะเป็นผู้จัดการการส่งอีเมลและได้รับการกำหนดค่าในคอนโซล Firebase

  • การปรับแต่ง CSS

    Firebase UI ใช้การจัดรูปแบบ Material Design Lite ซึ่งจะเพิ่มภาพเคลื่อนไหวของดีไซน์ Material แบบไดนามิก

ขั้นตอนที่ 1: เปลี่ยนรหัสเซิร์ฟเวอร์

  1. หากเซิร์ฟเวอร์ของคุณใช้โทเค็น Identity Toolkit (ใช้ได้เป็นเวลา 2 สัปดาห์) ในการจัดการเซสชันของผู้ใช้เว็บ คุณจะต้องแปลงเซิร์ฟเวอร์ให้ใช้คุกกี้เซสชันของตนเอง

    1. ใช้ปลายทางสำหรับการตรวจสอบโทเค็นรหัส Firebase และตั้งค่าคุกกี้ของเซสชันสำหรับผู้ใช้ แอปไคลเอ็นต์จะส่งโทเค็นรหัส Firebase ไปยังปลายทางนี้
    2. ถ้าคำขอที่เข้ามามีคุกกี้เซสชันของคุณเอง คุณสามารถพิจารณาผู้ใช้ที่ตรวจสอบสิทธิ์แล้ว มิฉะนั้น ให้ถือว่าคำขอดังกล่าว ผ่านการตรวจสอบสิทธิ์
    3. หากไม่ต้องการให้ผู้ใช้รายใดเสียเซสชันที่ลงชื่อเข้าใช้อยู่ คุณควรรอ 2 สัปดาห์เพื่อให้โทเค็น Identity Toolkit ทั้งหมดหมดอายุ หรือทำการตรวจสอบโทเค็นคู่สำหรับเว็บแอปพลิเคชันตามที่อธิบายไว้ด้านล่างในขั้นตอนที่ 3
  2. ขั้นต่อไป เนื่องจากโทเค็น Firebase ต่างจากโทเค็น Identity Toolkit คุณจึงต้องอัปเดตตรรกะการตรวจสอบโทเค็น ติดตั้ง Firebase Server SDK ไปยังเซิร์ฟเวอร์ หรือหากใช้ภาษาที่ Firebase Server SDK ไม่รองรับ ให้ดาวน์โหลดไลบรารีการตรวจสอบโทเค็น JWT สำหรับสภาพแวดล้อมและตรวจสอบโทเค็นให้ถูกต้อง

  3. เมื่อทำการอัปเดตข้างต้นเป็นครั้งแรก คุณอาจยังมีเส้นทางโค้ดที่ต้องใช้โทเค็น Identity Toolkit หากคุณมีแอปพลิเคชัน iOS หรือ Android ผู้ใช้จะต้องอัปเกรดเป็นแอปเวอร์ชันใหม่เพื่อให้เส้นทางโค้ดใหม่ใช้งานได้ หากไม่ต้องการบังคับให้ผู้ใช้อัปเดตแอป คุณสามารถเพิ่มตรรกะการตรวจสอบเซิร์ฟเวอร์เพิ่มเติมที่จะตรวจสอบโทเค็น และกำหนดว่าต้องใช้ Firebase SDK หรือ SDK ของ Identity Toolkit เพื่อตรวจสอบโทเค็น หากคุณมีเฉพาะเว็บแอปพลิเคชัน คำขอการตรวจสอบสิทธิ์ใหม่ทั้งหมดจะย้ายไปที่ Firebase คุณจึงต้องใช้เพียงวิธีการยืนยันโทเค็น Firebase

ดูเอกสารอ้างอิง Firebase Web API

ขั้นตอนที่ 2: อัปเดต HTML ของคุณ

  1. เพิ่มโค้ดการเริ่มต้น Firebase ลงในแอปโดยทำดังนี้

    1. เปิดโปรเจ็กต์ในคอนโซล Firebase
    2. ในหน้าภาพรวม ให้คลิกเพิ่มแอป แล้วคลิกเพิ่ม Firebase ไปยังเว็บแอป ระบบจะแสดงข้อมูลโค้ดที่เริ่มต้น Firebase
    3. คัดลอกและวางข้อมูลโค้ดการเริ่มต้นลงในหน้าเว็บ
  2. เพิ่มการตรวจสอบสิทธิ์ FirebaseUI ลงในแอป

    <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 SDK ออกจากแอป

  4. หากใช้โทเค็นรหัส Identity Toolkit ในการจัดการเซสชัน คุณต้องทำการเปลี่ยนแปลงต่อไปนี้ในฝั่งไคลเอ็นต์

    1. หลังจากลงชื่อเข้าใช้ด้วย Firebase สำเร็จแล้ว ให้รับโทเค็นรหัส Firebase โดยโทรหา firebase.auth().currentUser.getToken()

    2. ส่งโทเค็นรหัส Firebase ไปยังเซิร์ฟเวอร์แบ็กเอนด์ ตรวจสอบความถูกต้อง และออกคุกกี้เซสชันของคุณเอง

      อย่าพึ่งพาคุกกี้เซสชันเพียงอย่างเดียวเมื่อดำเนินการดำเนินการที่มีความละเอียดอ่อน หรือส่งคำขอแก้ไขที่ได้รับการตรวจสอบสิทธิ์ไปยังเซิร์ฟเวอร์ของคุณ คุณจะต้องให้การป้องกันการปลอมแปลงคำขอแบบข้ามเว็บไซต์ (CSRF) เพิ่มเติม

      หากเฟรมเวิร์กของคุณไม่ให้การป้องกัน CSRF วิธีหนึ่งในการป้องกันการโจมตีก็คือการรับโทเค็นรหัส Firebase สำหรับผู้ใช้ที่ลงชื่อเข้าใช้ด้วย getToken() และใส่โทเค็นไปกับคำขอแต่ละรายการ (คุกกี้เซสชันจะส่งโดยค่าเริ่มต้นด้วย) จากนั้นให้ตรวจสอบโทเค็นดังกล่าวโดยใช้ SDK เซิร์ฟเวอร์ของ Firebase เพิ่มเติมจากการตรวจสอบคุกกี้ของเซสชัน ซึ่งเฟรมเวิร์กแบ็กเอนด์ของคุณได้ทำงานแล้ว ซึ่งจะทำให้การโจมตี CSRF สำเร็จได้ยากขึ้น เนื่องจากโทเค็นรหัส Firebase จะจัดเก็บโดยใช้พื้นที่เก็บข้อมูลบนเว็บเท่านั้นและไม่มีในคุกกี้

    3. โทเค็น Identity Toolkit จะใช้ได้เป็นเวลา 2 สัปดาห์ คุณอาจต้องออกโทเค็นต่อไปซึ่งมีอายุ 2 สัปดาห์ หรือกำหนดระยะเวลาให้ยาวขึ้นหรือสั้นลงตามข้อกำหนดด้านความปลอดภัยของแอป เมื่อผู้ใช้ออกจากระบบ ให้ล้างคุกกี้ของเซสชัน

ขั้นตอนที่ 3: อัปเดต URL เปลี่ยนเส้นทาง IDP

  1. ในคอนโซล Firebase ให้เปิดส่วนการตรวจสอบสิทธิ์แล้วคลิกแท็บวิธีการลงชื่อเข้าใช้

  2. สำหรับผู้ให้บริการการลงชื่อเข้าใช้แบบรวมศูนย์แต่ละรายที่คุณรองรับ ให้ทำดังนี้

    1. คลิกชื่อผู้ให้บริการการลงชื่อเข้าใช้
    2. คัดลอก URI การเปลี่ยนเส้นทาง OAuth
    3. อัปเดต URI การเปลี่ยนเส้นทาง OAuth ใน Developer Console ของผู้ให้บริการการลงชื่อเข้าใช้

Android

ขั้นตอนที่ 1: เพิ่ม Firebase ไปยังแอปของคุณ

  1. เปิดคอนโซล Firebase แล้วเลือกโปรเจ็กต์ Identity Toolkit ที่คุณได้นำเข้าแล้ว

  2. ในหน้าภาพรวม ให้คลิกเพิ่มแอป แล้วคลิกเพิ่ม Firebase ไปยังแอป Android ในกล่องโต้ตอบ "เพิ่ม Firebase" ให้ระบุชื่อแพ็กเกจของแอปและลายนิ้วมือของใบรับรองที่ลงนาม แล้วคลิกเพิ่มแอป จากนั้นระบบจะดาวน์โหลดไฟล์การกำหนดค่า google-services.json ลงในคอมพิวเตอร์

  3. คัดลอกไฟล์การกำหนดค่าไปยังไดเรกทอรีรากโมดูลของแอป Android ไฟล์การกำหนดค่านี้ประกอบด้วยข้อมูลโปรเจ็กต์และไคลเอ็นต์ OAuth ของ Google

  4. ในไฟล์ build.gradle ระดับโปรเจ็กต์ (<var>your-project</var>/build.gradle) ให้ระบุชื่อแพ็กเกจของแอปในส่วน defaultConfig

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. นอกจากนี้ในไฟล์ build.gradle ระดับโปรเจ็กต์ ให้เพิ่มทรัพยากร Dependency เพื่อรวมปลั๊กอิน 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 ระดับแอป ให้เพิ่มทรัพยากร Dependency ของการตรวจสอบสิทธิ์ Firebase ดังนี้

    compile 'com.google.firebase:firebase-auth:23.0.0'
    compile 'com.google.android.gms:play-services-auth:21.2.0'
    

ขั้นตอนที่ 2: นำ Identity Toolkit SDK ออก

  1. นำการกำหนดค่า Identity Toolkit ออกจากไฟล์ AndroidManifest.xml ข้อมูลนี้รวมอยู่ในไฟล์ google-service.json และโหลดโดยปลั๊กอิน google-services
  2. นำ Identity Toolkit SDK ออกจากแอป

ขั้นตอนที่ 3: เพิ่ม FirebaseUI ลงในแอป

  1. เพิ่มการตรวจสอบสิทธิ์ FirebaseUI ลงในแอป

  2. ในแอป ให้ใช้การเรียก FirebaseUI แทนการเรียกใช้ Identity Toolkit SDK

iOS

ขั้นตอนที่ 1: เพิ่ม Firebase ไปยังแอปของคุณ

  1. เพิ่ม Firebase SDK ลงในแอปโดยเรียกใช้คำสั่งต่อไปนี้

    $ 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 แล้วเพิ่มลงในเป้าหมายทั้งหมด

ขั้นตอนที่ 2: นำ Identity Toolkit SDK ออก

  1. นำ GoogleIdentityToolkit ออกจาก Podfile ของแอป
  2. เรียกใช้คำสั่ง pod install

ขั้นตอนที่ 3: เพิ่ม FirebaseUI ลงในแอป

  1. เพิ่มการตรวจสอบสิทธิ์ FirebaseUI ลงในแอป

  2. ในแอป ให้ใช้การเรียก FirebaseUI แทนการเรียกใช้ Identity Toolkit SDK