ในเดือนพฤษภาคม 2016 เราได้เปิดตัว Google Identity Toolkit เวอร์ชันล่าสุดในชื่อ Firebase Authentication และในเดือนเมษายน 2019 เราได้เปิด ตัวแพลตฟอร์ม Identity ของ Google Cloud ผลิตภัณฑ์เหล่านี้รวมถึง SDK ไคลเอ็นต์ที่อัปเกรดไลบรารี UI แบบโอเพนซอร์สการจัดการเซสชันและบริการส่งอีเมลแบบรวมสำหรับโฟลว์ที่ลืมรหัสผ่าน

ใน วันที่ 30 มิถุนายน 2020 SDK ที่บันทึกไว้ในหน้านี้และหน้าการตั้งค่า API จะหยุดทำงาน ( https://identitytoolkit.googleapis.com/... และ https://securetoken.googleapis.com/... endpoints ซึ่งใช้โดย Identity Platform และ Firebase Authentication จะยังคงทำงานต่อไป)

หากต้องการย้ายโครงการที่มีอยู่จาก Identity Toolkit โปรดดู คู่มือการย้ายข้อมูล Identity Platform หรือ คู่มือการย้ายข้อมูลการตรวจสอบสิทธิ์ Firebase

ย้ายข้อมูลจาก Google Identityชุดเครื่องมือไปยังการตรวจสอบสิทธิ์ Firebase

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

ฟีเจอร์ใหม่

การตรวจสอบสิทธิ์ของ Firebase มีการเพิ่มประสิทธิภาพที่สําคัญกว่า Google Identity Toolkit ดังต่อไปนี้

  • เข้าถึง Firebase ทั้งหมด

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

  • UI ที่อัปเดต

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

  • การตั้งค่าเซิร์ฟเวอร์แบบง่าย

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

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

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

  • SDK ใหม่

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ในชุดเครื่องมือระบุตัวตน เมื่อผู้ใช้ตัดสินใจเปลี่ยนอีเมล ระบบจะส่งอีเมลไปยังที่อยู่ใหม่ที่มีลิงก์เพื่อดําเนินการต่อในขั้นตอนการเปลี่ยนอีเมล

    Firebase จะยืนยันการเปลี่ยนอีเมลด้วยการส่งอีเมลยกเลิกไปยังอีเมลเดิมที่มีลิงก์สําหรับเปลี่ยนกลับการเปลี่ยนแปลง

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

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

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

ใน Firebase ฟีเจอร์ต่างๆ ที่ระบุโดย Google Identity Toolkit จะแบ่งออกเป็น 2 องค์ประกอบ ได้แก่

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

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

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

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

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

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

    เนื่องจากเซสชันได้รับการจัดการแตกต่างกันใน Identity Identity และ Firebase การตรวจสอบสิทธิ์ของผู้ใช้ เซสชันที่มีอยู่จึงสิ้นสุดลงเมื่ออัปเกรด SDK และผู้ใช้ต้องลงชื่อเข้าใช้อีกครั้ง

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

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

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

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

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

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

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

    ในชุดเครื่องมือระบุตัวตน เมื่อผู้ใช้รีเซ็ตรหัสผ่าน เปลี่ยนอีเมล และ ยืนยันอีเมลของตนเอง ระบบจะขอรหัส 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 แล้ว ระบบจะตั้งค่าคุกกี้ให้กับผู้ใช้ที่ใช้ในการบูตเซสชัน คุกกี้นี้มีอายุการใช้งาน 2 สัปดาห์และมีไว้เพื่ออนุญาตให้ผู้ใช้ใช้วิดเจ็ตการจัดการบัญชีเพื่อเปลี่ยนรหัสผ่านและอีเมลได้ บางเว็บไซต์ใช้คุกกี้นี้เพื่อตรวจสอบสิทธิ์คําขอหน้าเว็บอื่นๆ ทั้งหมดในเว็บไซต์ เว็บไซต์อื่นๆ ใช้คุกกี้เพื่อสร้างคุกกี้ของตนเองผ่านระบบการจัดการคุกกี้ของเฟรมเวิร์ก ##39

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

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

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

    ก่อนหน้านี้ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยัง accountchooser.com เมื่อเริ่มการลงชื่อเข้าใช้เพื่อดูตัวระบุที่ผู้ใช้ต้องการใช้ ขั้นตอน Firebase Auth UI' จะเริ่มต้นด้วยรายการวิธีลงชื่อเข้าใช้ รวมถึงตัวเลือกอีเมลซึ่งไปที่ 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 Design แบบไดนามิก

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

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

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

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

ดูข้อมูลอ้างอิงเกี่ยวกับ API สําหรับเว็บ Firebase

ขั้นตอนที่ 2: อัปเดต HTML

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

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

    <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. หากคุณใช้โทเค็นรหัสชุดเครื่องมือระบุตัวตนสําหรับการจัดการเซสชัน คุณต้องทําการเปลี่ยนแปลงต่อไปนี้ในฝั่งไคลเอ็นต์

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

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

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

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

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

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

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

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

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

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:21.1.0'
    compile 'com.google.android.gms:play-services-auth:20.4.0'
    

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

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

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

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

  2. ในแอป ให้แทนที่การเรียก SDK Toolkit ด้วยการเรียกไปยัง FirebaseUI

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. เพิ่มการตรวจสอบสิทธิ์ Firebase UI ลงในแอป

  2. ในแอป ให้แทนที่การเรียก SDK Toolkit ด้วยการเรียกไปยัง FirebaseUI