ในเดือนพฤษภาคม 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ชุดเครื่องมือไปยังแพลตฟอร์มข้อมูลประจําตัวของ Google Cloud

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

ฟีเจอร์ใหม่

Identity Platform ได้เพิ่มประสิทธิภาพฟีเจอร์ไปมากกว่า Google Identity Toolkit แล้ว นั่นคือ

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

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

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

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

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

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

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

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

  • UI ที่อัปเดต

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

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

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

  • SDK ใหม่

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

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

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

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

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

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

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

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

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

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

    ปัจจุบันมี Admin SDK สําหรับ Java, Node.js, Python, Go และ C#

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

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

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

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

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

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

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

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

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

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

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

  • วิดเจ็ต UI

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

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

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

    เนื่องจากเซสชันมีการจัดการต่างกันใน Identity Identity และแพลตฟอร์ม Identity ผู้ใช้ของคุณจึงหยุดเซสชันที่มีอยู่เมื่ออัปเกรด SDK และผู้ใช้จะต้องลงชื่อเข้าใช้อีกครั้ง

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

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

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

  2. จาก Marketplace ให้เรียกดู Identity Platform แล้วเลือก 'เปิดใช้ Identity Platform'

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

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

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

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

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

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

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

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

  • ปุ่ม/วิดเจ็ตสําหรับลงชื่อเข้าใช้

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

  • ไม่มี SignOutUrl

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

  • ไม่มี oobActionUrl

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

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

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

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

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

    1. ใช้ปลายทางสําหรับการตรวจสอบโทเค็นรหัส และตั้งค่าคุกกี้ของเซสชันสําหรับผู้ใช้ แอปไคลเอ็นต์จะส่งโทเค็น Firebase ID ไปยังปลายทางนี้
    2. หากคําขอที่เข้ามามีคุกกี้เซสชันของคุณเอง คุณอาจพิจารณาตรวจสอบสิทธิ์ผู้ใช้อีกครั้งได้ มิฉะนั้น ให้ถือว่าคําขอไม่ได้รับการตรวจสอบสิทธิ์
    3. หากไม่ต้องการให้ผู้ใช้สูญเสียเซสชันที่ลงชื่อเข้าสู่ระบบที่มีอยู่ คุณควรรอเป็นเวลา 2 สัปดาห์เพื่อให้โทเค็น Identity Identity ทั้งหมดหมดอายุ หรือตรวจสอบด้วยโทเค็นคู่สําหรับเว็บแอปพลิเคชันตามที่อธิบายไว้ในขั้นตอนที่ 3 ด้านล่าง
  2. ถัดไป เนื่องจากโทเค็นรหัสแตกต่างจากโทเค็น Identity Identity คุณจึงต้องอัปเดตตรรกะการตรวจสอบโทเค็น ติดตั้ง 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. หากคุณใช้โทเค็นรหัสชุดเครื่องมือระบุตัวตนสําหรับการจัดการเซสชัน คุณต้องทําการเปลี่ยนแปลงต่อไปนี้ในฝั่งไคลเอ็นต์

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

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

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