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

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

ฟีเจอร์ใหม่

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

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

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

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

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

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

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

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

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

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

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

  2. จากมาร์เก็ตเพลส ให้ไปที่ 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. นำ 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. ในคอนโซลนักพัฒนาแอปของผู้ให้บริการลงชื่อเข้าใช้ ให้อัปเดต 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 ระดับแอป ให้เพิ่มการอ้างอิงการตรวจสอบสิทธิ์ Firebase ดังนี้

    compile 'com.google.firebase:firebase-auth:24.2.0'
    compile 'com.google.android.gms:play-services-auth:22.0.0'
    

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

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

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