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

Google Identity Toolkit เวอร์ชันล่าสุดได้เปิดตัวเป็น Identity Platform และ Firebase Authentication แล้ว นับจากนี้เป็นต้นไป เราจะหยุดใช้งานฟีเจอร์ใน 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 ประกอบด้วยฟีเจอร์เสริมที่คุณสามารถผสมผสานให้เหมาะกับความต้องการ และประกอบด้วยโครงสร้างพื้นฐานสําหรับข้อมูลวิเคราะห์บนอุปกรณ์เคลื่อนที่, การรับส่งข้อความบนระบบคลาวด์, ฐานข้อมูลแบบเรียลไทม์, พื้นที่เก็บข้อมูลไฟล์, โฮสติ้งแบบคงที่, การกําหนดค่าระยะไกล, การรายงานข้อขัดข้องบนอุปกรณ์เคลื่อนที่ และการทดสอบ 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 ใช้ บริการแบ็กเอนด์ที่ใช้โทเค็นการรีเฟรชซึ่งสร้างขึ้นจากการตรวจสอบสิทธิ์ กิจกรรม แล้วแลกเปลี่ยนเป็นโทเค็นเพื่อการเข้าถึงความยาวชั่วโมงสำหรับ Android, iOS และ JavaScript เมื่อผู้ใช้เปลี่ยนรหัสผ่าน โทเค็นการรีเฟรชจะไม่ สามารถสร้างโทเค็นเพื่อการเข้าถึงใหม่นานขึ้น ดังนั้นจึงมีการปิดใช้การเข้าถึงจนกว่า ผู้ใช้ตรวจสอบสิทธิ์ในอุปกรณ์นั้นอีกครั้ง

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

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

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

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

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

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

  • คลังเซิร์ฟเวอร์

    ปัจจุบันมี SDK ผู้ดูแลระบบ ใช้ได้กับ Java, Node.js, Python, Go และ C#

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

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

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

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

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

  • การเริ่มใช้งาน IdP

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

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

ในแพลตฟอร์มข้อมูลประจำตัว ฟีเจอร์ที่ Google Identity Toolkit มีให้จะแบ่งออกเป็น 2 ส่วนดังนี้

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

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

  • วิดเจ็ต UI

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

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

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

    เนื่องจากเซสชันมีการจัดการแตกต่างกันใน Identity Toolkit และ Identity แพลตฟอร์ม ผู้ใช้ของคุณ เซสชันที่มีอยู่จะสิ้นสุดลงเมื่อ กำลังอัปเกรด 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 ในส่วนผู้ให้บริการ ภายในวิธีการลงชื่อเข้าใช้ "อีเมล/รหัสผ่าน" ให้เปิดหน้าเทมเพลตอีเมล จากนั้นคุณจะปรับแต่งการตั้งค่า เทมเพลต

    ใน 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. ต่อไป เนื่องจากโทเค็น ID แตกต่างจาก Identity Toolkit คุณต้องอัปเดตตรรกะการตรวจสอบโทเค็น ติดตั้ง Admin SDK ในเซิร์ฟเวอร์ หรือหากคุณใช้ภาษาที่ Admin SDK ไม่รองรับ ให้ดาวน์โหลดไลบรารีการตรวจสอบโทเค็น JWT สำหรับสภาพแวดล้อมของคุณ และตรวจสอบโทเค็นอย่างเหมาะสม

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

โปรดดูข้อมูลอ้างอิง 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. นำ SDK ของ Identity Toolkit ออกจากแอป

  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. อัปเดตการเปลี่ยนเส้นทาง OAuth ใน Developer Console ของผู้ให้บริการการลงชื่อเข้าใช้ URI

Android

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

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

  2. ในหน้าผู้ให้บริการ ให้คลิกรายละเอียดการตั้งค่าแอปพลิเคชัน แล้วเลือก Android จากนั้นคลิกเริ่มต้นใช้งานใน Firebase ในกล่องโต้ตอบเพิ่ม 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) ให้เพิ่ม ต่อจากปลั๊กอิน 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: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. ในแอปของคุณ ให้แทนที่การเรียกใช้ Identity Toolkit SDK ด้วยการเรียก Firebase UI

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 ลงในคอมพิวเตอร์ หากคุณมีรหัสชุดหลายรายการในโปรเจ็กต์ รหัสชุดแต่ละรายการ ต้องเชื่อมต่อในคอนโซล Firebase เพื่อให้มี GoogleService-Info.plist ไฟล์

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

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

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

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

  1. เพิ่มการตรวจสอบสิทธิ์ FirebaseUI กับแอปของคุณ

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