ย้ายข้อมูลจาก Google Identity Toolkit ไปยัง Identity Platform ของ Google Cloud

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

ฟีเจอร์ใหม่

Identity Platform มีการปรับปรุงฟีเจอร์ที่สำคัญอยู่แล้วเมื่อเทียบกับ Google Identity Toolkit ดังนี้

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

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

  • วิธีการตรวจสอบสิทธิ์ใหม่

    Identity Platform รองรับมาตรฐานการรวมระบบขององค์กร เช่น SAML และ OIDC ซึ่งช่วยให้คุณปรับขนาดแอปและบริการ SaaS ได้ นอกจากนี้ Identity Platform ยัง รองรับผู้ให้บริการอย่าง GitHub, Microsoft, Yahoo และอื่นๆ ด้วย คุณสามารถใช้การลงชื่อเข้าใช้แบบไม่ระบุตัวตนเพื่อสร้างรหัสผู้ใช้ที่ไม่ซ้ำกันโดยไม่ต้องให้ผู้ใช้ผ่านกระบวนการลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ ซึ่งจะช่วยให้คุณทําการเรียก API ที่ผ่านการตรวจสอบสิทธิ์ได้เช่นเดียวกับผู้ใช้ทั่วไป เมื่อ ผู้ใช้ตัดสินใจลงชื่อสมัครใช้บัญชี ระบบจะเก็บกิจกรรมทั้งหมดไว้ด้วย รหัสผู้ใช้เดิม ซึ่งมีประโยชน์ในสถานการณ์ต่างๆ เช่น รถเข็นช็อปปิ้งฝั่งเซิร์ฟเวอร์ หรือแอปพลิเคชันอื่นๆ ที่คุณต้องการดึงดูดผู้ใช้ก่อนที่จะส่ง ผู้ใช้ผ่านขั้นตอนการลงชื่อสมัครใช้

  • ขยายขนาดได้อย่างมั่นใจด้วยข้อตกลงระดับการให้บริการและการสนับสนุนระบบคลาวด์

    Identity Platform สร้างขึ้นบนโครงสร้างพื้นฐานที่เชื่อถือได้ของ Google และมี ข้อตกลงระดับการให้บริการ และการสนับสนุนจาก Google Cloud ซึ่งหมายความว่าคุณสามารถปรับขนาดบริการได้อย่างมั่นใจ และวางใจให้ Google มอบความยืดหยุ่น ความพร้อมใช้งาน และความสามารถในการปรับขนาดที่คุณต้องการ

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

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

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

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

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

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

  • SDK ใหม่

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ใน Identity Platform ฟีเจอร์ที่ Google Identity Toolkit มีให้จะแยกออกเป็น 2 องค์ประกอบ ดังนี้

  • SDK ของไคลเอ็นต์และเซิร์ฟเวอร์

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

  • วิดเจ็ต UI

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

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

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

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

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

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

  1. เปิด Cloud Console แล้วเลือกโปรเจ็กต์ Identity Toolkit

  2. จาก Marketplace ให้ไปที่ Identity Platform แล้วเลือก "เปิดใช้ Identity Platform"

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

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

  5. กลับไปที่ Cloud Console ในส่วนผู้ให้บริการ ภายในวิธีการลงชื่อเข้าใช้ "อีเมล/รหัสผ่าน" ให้เปิดหน้าเทมเพลตอีเมล จากนั้นคุณจะปรับแต่งเทมเพลตของแอปได้

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

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

    1. คุณติดตั้ง Node.js Admin SDK ได้ด้วยคำสั่ง 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

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

การติดตั้งใช้งาน Identity Platform บนเว็บมีความแตกต่างจาก Identity Toolkit อีกหลายประการ

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

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

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

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

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

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

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

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

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

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

  • ไม่มี signOutUrl

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

  • ไม่มี oobActionUrl

    ตอนนี้ Identity Platform จะจัดการการส่งอีเมลและกำหนดค่าในคอนโซล Firebase

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

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

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

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

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

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

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

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

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

    1. เปิดโปรเจ็กต์ใน Cloud Console
    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 SDK ออกจากแอป

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

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

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

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

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

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

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

  1. ใน Cloud Console ให้เปิดส่วนผู้ให้บริการ

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

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

Android

ขั้นตอนที่ 1: เพิ่ม Identity Platform ลงในแอปด้วย Firebase

  1. เปิด Cloud Console แล้วเลือกโปรเจ็กต์ 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 ระดับโปรเจ็กต์ ให้เพิ่มทรัพยากร 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) ให้เพิ่มบรรทัดต่อไปนี้หลังจากปลั๊กอิน 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 ระดับแอป ให้เพิ่มทรัพยากร Dependency ของการตรวจสอบสิทธิ์ Firebase ดังนี้

    compile 'com.google.firebase:firebase-auth:24.0.1'
    compile 'com.google.android.gms:play-services-auth:21.4.0'
    

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

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

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

  1. เพิ่ม FirebaseUI Auth ไปยังแอป

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

iOS

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

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

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. เปิด Cloud Console แล้วเลือกโปรเจ็กต์ Identity Toolkit

  3. ในหน้าผู้ให้บริการ ให้คลิกรายละเอียดการตั้งค่าแอปพลิเคชัน เลือกแท็บ iOS แล้วคลิกเริ่มต้นใช้งานใน Firebase ในกล่องโต้ตอบ "เพิ่ม Firebase" ให้ ระบุชื่อแพ็กเกจและลายนิ้วมือของใบรับรองการลงนามของแอป แล้ว คลิกเพิ่มแอป จากนั้นระบบจะ ดาวน์โหลดไฟล์การกำหนดค่า google-services.json ลงในคอมพิวเตอร์ ในกล่องโต้ตอบ "เพิ่ม Firebase" ให้ระบุ รหัสแพ็กเกจและรหัส App Store ของแอป แล้วคลิกเพิ่มแอป จากนั้นระบบจะดาวน์โหลดไฟล์การกำหนดค่า GoogleService-Info.plist ลงในคอมพิวเตอร์ หากมี Bundle ID หลายรายการในโปรเจ็กต์ คุณต้องเชื่อมต่อ Bundle ID แต่ละรายการในคอนโซล Firebase เพื่อให้มีไฟล์ GoogleService-Info.plist ของตัวเอง

  4. คัดลอกไฟล์การกำหนดค่าไปยังรูทของโปรเจ็กต์ Xcode แล้วเพิ่มลงในเป้าหมายทั้งหมด

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

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

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

  1. เพิ่ม FirebaseUI Auth ไปยังแอป

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