Google Identity Toolkit เวอร์ชันใหม่ล่าสุดได้รับการเผยแพร่เป็น การตรวจสอบสิทธิ์ Firebase ตั้งแต่นี้เป็นต้นไป เราจะหยุดใช้งานฟีเจอร์ใน Identity Toolkit และจะเปลี่ยนไปใช้ฟีเจอร์ใหม่ทั้งหมด การพัฒนาฟีเจอร์จะดำเนินการในการตรวจสอบสิทธิ์ Firebase เราขอแนะนำให้ นักพัฒนาซอฟต์แวร์ Identity Toolkit จะเปลี่ยนไปใช้การตรวจสอบสิทธิ์ Firebase โดยเร็วที่สุด สามารถนำไปปรับใช้จริงได้จริง แต่ Identity Toolkit ยัง และจะเลิกใช้งานโดยไม่มีการประกาศเพิ่มเติม
ฟีเจอร์ใหม่
การตรวจสอบสิทธิ์ Firebase มีการปรับปรุงฟีเจอร์ที่สำคัญบางอย่างอยู่แล้ว Google Identity Toolkit:
สิทธิ์เข้าถึง Firebase ทั้งหมด
Firebase เป็นแพลตฟอร์มบนอุปกรณ์เคลื่อนที่ที่ช่วยให้คุณพัฒนาคุณภาพสูงได้อย่างรวดเร็ว แอป ขยายฐานผู้ใช้ และสร้างรายได้มากขึ้น Firebase ประกอบด้วย ฟีเจอร์เสริมที่คุณสามารถนำไปปรับใช้เพื่อให้เหมาะกับความต้องการและ มีโครงสร้างพื้นฐานสำหรับ Analytics บนอุปกรณ์เคลื่อนที่ การรับส่งข้อความในระบบคลาวด์ ฐานข้อมูลแบบเรียลไทม์ พื้นที่เก็บข้อมูลไฟล์ โฮสติ้งแบบคงที่ การกำหนดค่าระยะไกล รายงานข้อขัดข้องบนอุปกรณ์เคลื่อนที่ และ การทดสอบ Android
UI ที่อัปเดตแล้ว
เราได้สร้างขั้นตอน UI ขึ้นใหม่ทั้งหมดโดยอิงตาม UX ล่าสุดของ Google การวิจัย ซึ่งรวมถึงการกู้คืนรหัสผ่าน การลิงก์บัญชี ใหม่/ที่มีอยู่ ขั้นตอนการชี้แจงบัญชีที่มักใช้เวลานานในการเขียนโค้ด ของคุณ ผสานรวม Smart Lock สำหรับรหัสผ่าน บน Android ซึ่งมี Conversion จำนวนการลงชื่อเข้าใช้และการลงชื่อสมัครใช้เพิ่มขึ้นอย่างมาก สําหรับแอปที่เข้าร่วม และยังรองรับการแก้ไขธีมที่ง่ายดาย เพื่อให้ตรงกับแอปพลิเคชันของคุณ และสำหรับ ความสามารถในการปรับแต่งสูงสุด คือ Android และ iOS เป็นโอเพนซอร์ส
การตั้งค่าเซิร์ฟเวอร์ที่ง่ายขึ้น
เราทำให้นักพัฒนาซอฟต์แวร์ใช้การตรวจสอบสิทธิ์ Firebase ได้ง่ายขึ้น ด้วย Identity Toolkit เราพบว่านักพัฒนาซอฟต์แวร์จำนวนมากเลือกที่จะไม่ใช้ ขั้นตอนการกู้คืนรหัสผ่าน ทำให้ผู้ใช้กู้คืนไม่ได้ บัญชีของตนได้ หากลืมรหัสผ่าน การตรวจสอบสิทธิ์ Firebase ส่งการยืนยันอีเมล รีเซ็ตรหัสผ่าน และข้อความรหัสผ่านที่เปลี่ยนแปลงไปยัง ผู้ใช้และข้อความสามารถปรับแต่งได้อย่างง่ายดาย สำหรับผู้ใช้ของคุณ นอกจากนี้ คุณยังไม่ต้องโฮสต์ วิดเจ็ต UI สำหรับการโฮสต์การเปลี่ยนเส้นทาง และ การเปลี่ยนรหัสผ่านให้เสร็จสมบูรณ์
คอนโซลผู้ดูแลระบบแบบใหม่
Firebase มีคอนโซลของนักพัฒนาซอฟต์แวร์แบบใหม่ และส่วนการตรวจสอบสิทธิ์ช่วยให้คุณสามารถดู แก้ไข และลบ ผู้ใช้ นี่จะเป็นตัวช่วยที่ดีในการแก้ไขข้อบกพร่องของขั้นตอนการลงชื่อเข้าใช้และการลงชื่อสมัครใช้ นอกจากนี้ คอนโซลยังช่วยให้คุณกำหนดค่าวิธีการตรวจสอบสิทธิ์และ เทมเพลตอีเมล
SDK ใหม่
ขณะนี้ API เซิร์ฟเวอร์ของ Identity Toolkit ทั้งหมดมีให้บริการแบบดั้งเดิมแล้ว ไลบรารีไคลเอ็นต์ (Android, iOS, เว็บ) นักพัฒนาแอปสามารถลงนาม ลงชื่อเข้าใช้และลงชื่อสมัครใช้ผู้ใช้ทั้งเก่าและใหม่ เข้าถึงพร็อพเพอร์ตี้ผู้ใช้ ลิงก์ อัปเดต และ ลบบัญชี รีเซ็ตรหัสผ่าน และอื่นๆ โดยไม่ต้องเชื่อมโยงกับ UI แบบคงที่ ถ้าต้องการ คุณสามารถสร้างขั้นตอนการลงชื่อเข้าใช้ทั้งหมดด้วยตนเอง และ เพิ่มเติมเกี่ยวกับ API นี้
การจัดการเซสชันสำหรับแอปบนอุปกรณ์เคลื่อนที่
ด้วยเครื่องมือ Identity Toolkit ให้แอปต่างๆ สร้างสถานะเซสชันขึ้นเองตาม เหตุการณ์การตรวจสอบสิทธิ์ครั้งแรกจาก Identity Toolkit Firebase Auth ใช้ บริการแบ็กเอนด์ที่ใช้โทเค็นการรีเฟรชซึ่งสร้างขึ้นจากการตรวจสอบสิทธิ์ กิจกรรม แล้วแลกเปลี่ยนเป็นโทเค็นเพื่อการเข้าถึงความยาวชั่วโมงสำหรับ Android, iOS และ JavaScript เมื่อผู้ใช้เปลี่ยนรหัสผ่าน โทเค็นการรีเฟรชจะไม่ สามารถสร้างโทเค็นเพื่อการเข้าถึงใหม่นานขึ้น ดังนั้นจึงมีการปิดใช้การเข้าถึงจนกว่า ผู้ใช้ตรวจสอบสิทธิ์ในอุปกรณ์นั้นอีกครั้ง
การตรวจสอบสิทธิ์ GitHub แบบไม่ระบุชื่อ
การตรวจสอบสิทธิ์ Firebase รองรับการตรวจสอบสิทธิ์ใหม่ 2 ประเภท ได้แก่ GitHub และ ไม่ระบุชื่อ การลงชื่อเข้าใช้แบบไม่ระบุชื่อสามารถใช้เพื่อสร้างรหัสผู้ใช้ที่ไม่ซ้ำกันได้ โดยไม่ต้อง การกำหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ พร้อม คุณสามารถเรียก API ที่ผ่านการตรวจสอบสิทธิ์ได้แล้ว โดยใช้วิธีต่อไปนี้ กับผู้ใช้ขาประจำ เมื่อผู้ใช้ตัดสินใจลงชื่อสมัครใช้บัญชี ระบบจะเก็บรักษากิจกรรมไว้ด้วย User-ID เดียวกัน เหมาะกับสถานการณ์ เช่น รถเข็นช็อปปิ้งฝั่งเซิร์ฟเวอร์หรือแอปพลิเคชันใดๆ ที่คุณต้องการดึงดูด ให้ผู้ใช้ก่อนที่จะส่งผ่านขั้นตอนการลงชื่อสมัครใช้
ความแตกต่างของฟีเจอร์
ฟีเจอร์บางอย่างของ Identity Toolkit ยังไม่พร้อมใช้งานใน Firebase การตรวจสอบสิทธิ์ในขณะที่ฟีเจอร์อื่นๆ ได้รับการออกแบบใหม่และทำงานแตกต่างออกไป คุณอาจเลือกที่จะไม่ย้ายข้อมูลทันทีหากฟีเจอร์เหล่านี้สำคัญต่อ แอปของคุณ ในหลายกรณี ฟีเจอร์เหล่านี้อาจไม่สำคัญสำหรับแอปของคุณหรือ อาจมีเส้นทางสำรองง่ายๆ ที่จะช่วยให้คุณดำเนินการย้ายข้อมูลได้
ความแตกต่างของฝั่งเซิร์ฟเวอร์
บริการหลักของ Identity Toolkit ที่มี REST API ที่เกี่ยวข้อง, บัญชี ตรรกะการตรวจสอบความถูกต้องและฐานข้อมูลผู้ใช้หลักได้รับการอัปเดตเพียงเล็กน้อยเท่านั้น แต่บางฟีเจอร์และลักษณะที่คุณผสานรวมการตรวจสอบสิทธิ์ Firebase ในบริการของคุณได้เปลี่ยนไป
ผู้ให้บริการข้อมูลประจำตัว
ไม่รองรับ PayPal และ AOL ผู้ใช้ที่มี บัญชีจาก IdP เหล่านี้ยังคงสามารถลงชื่อเข้าใช้แอปพลิเคชันด้วย ขั้นตอนการกู้คืนรหัสผ่านและตั้งรหัสผ่านสำหรับบัญชี
ไลบรารีของเซิร์ฟเวอร์
ปัจจุบันมี Firebase Admin SDK ใช้ได้กับ Java, Node.js, Python, Go และ C#
อีเมลการจัดการบัญชี
ระบบอาจรีเซ็ตรหัสผ่าน การยืนยันอีเมล และข้อความเปลี่ยนอีเมล ดำเนินการโดย Firebase หรือจาก เซิร์ฟเวอร์อีเมลของตนเอง ปัจจุบันเทมเพลตอีเมลของ Firebase มีให้บริการแบบจำกัด การปรับแต่งได้มากขึ้น
การยืนยันการเปลี่ยนอีเมล
ใน Identity Toolkit เมื่อผู้ใช้ตัดสินใจที่จะเปลี่ยนอีเมล ส่งอีเมลไปยังที่อยู่ใหม่ที่มีลิงก์สำหรับใช้ส่งอีเมลต่อ ขั้นตอนการเปลี่ยนที่อยู่
Firebase ยืนยันการเปลี่ยนแปลงอีเมลโดยส่งอีเมลเพิกถอนไปที่ ที่อยู่อีเมลเดิมที่มีลิงก์เพื่อเปลี่ยนกลับการเปลี่ยนแปลง
การเปิดตัว IDP
Identity Toolkit สามารถเพิ่มผู้ให้บริการข้อมูลประจำตัวลงในการลงชื่อเข้าใช้ของคุณได้ ระบบทีละน้อย เพื่อให้คุณสามารถทดสอบผลกระทบกับ คำขอการสนับสนุน มีการนำฟีเจอร์นี้ออกจากการตรวจสอบสิทธิ์ Firebase
ความแตกต่างของฝั่งไคลเอ็นต์
ใน Firebase ฟีเจอร์ต่างๆ จาก Google Identity Toolkit จะแบ่งออกเป็น 2 ประเภท คอมโพเนนต์
SDK การตรวจสอบสิทธิ์ของ Firebase
ในการตรวจสอบสิทธิ์ Firebase ฟังก์ชันการทำงานที่ได้จาก Identity Toolkit REST API ได้รับการรวมเป็นแพ็กเกจใน SDK ของไคลเอ็นต์ที่พร้อมใช้งานสำหรับ Android, iOS และ JavaScript คุณใช้ SDK เพื่อลงชื่อเข้าใช้และลงชื่อสมัครใช้สำหรับผู้ใช้ได้ ผู้ใช้ที่มีสิทธิ์เข้าถึง ข้อมูลโปรไฟล์ ลิงก์ อัปเดต และลบบัญชี และรีเซ็ตรหัสผ่าน ใช้ SDK ของไคลเอ็นต์แทนการสื่อสารกับบริการแบ็กเอนด์ผ่าน การโทร REST
การตรวจสอบสิทธิ์ FirebaseUI
ขั้นตอน UI ทั้งหมดที่จัดการการลงชื่อเข้าใช้ การลงชื่อสมัครใช้ การกู้คืนรหัสผ่าน ได้สร้างการลิงก์บัญชีขึ้นมาใหม่โดยใช้ SDK การตรวจสอบสิทธิ์ Frebase โดยมีให้บริการเป็น SDK แบบโอเพนซอร์สสำหรับ iOS และ Android เพื่อช่วยให้คุณ ปรับแต่งขั้นตอนได้เต็มที่ในรูปแบบที่ทําไม่ได้ด้วย Identity Toolkit
ความแตกต่างเพิ่มเติมมีดังนี้
เซสชันและการย้ายข้อมูล
เนื่องจากเซสชันมีการจัดการแตกต่างกันใน Identity Toolkit และ Firebase การตรวจสอบสิทธิ์ สำหรับผู้ใช้ของคุณ เซสชันที่มีอยู่จะสิ้นสุดลงเมื่อ กำลังอัปเกรด SDK และผู้ใช้ต้องลงชื่อเข้าใช้อีกครั้ง
ก่อนเริ่มต้น
ก่อนที่จะย้ายข้อมูลจาก Identity Toolkit ไปยังการตรวจสอบสิทธิ์ Firebase คุณต้อง ต้อง
เปิดคอนโซล Firebase คลิก นำเข้าโปรเจ็กต์ Google แล้วเลือกโปรเจ็กต์ Identity Toolkit
คลิก settings > สิทธิ์เพื่อเปิด IAM และ หน้าผู้ดูแลระบบ
เปิดบัญชีบริการ คุณจะเห็นบัญชีบริการที่คุณ ที่กำหนดค่าไว้ก่อนหน้านี้สำหรับ Identity Toolkit
ถัดจากบัญชีบริการ ให้คลิก more_vert สร้างคีย์ จากนั้น ใน กล่องโต้ตอบสร้างคีย์ส่วนตัว ตั้งค่าประเภทคีย์เป็น JSON และคลิก สร้าง ไฟล์ JSON ที่มีข้อมูลเข้าสู่ระบบของบัญชีบริการของคุณคือ ที่คุณดาวน์โหลดไว้ให้คุณแล้ว คุณจะต้องใช้คีย์นี้เพื่อเริ่มต้น SDK ในขั้นตอนถัดไป
กลับไปที่คอนโซล Firebase เปิดหน้าเทมเพลตอีเมลในส่วนการตรวจสอบสิทธิ์ ในหน้านี้ ปรับแต่งเทมเพลตอีเมลของแอป
ใน Identity Toolkit เมื่อผู้ใช้รีเซ็ตรหัสผ่าน เปลี่ยนที่อยู่อีเมล และ ยืนยันอีเมลแล้ว คุณต้องรับรหัส OOB จาก เซิร์ฟเวอร์ Identity Toolkit จากนั้นส่งรหัสให้ผู้ใช้ทางอีเมล Firebase จะส่งอีเมลตามเทมเพลตที่คุณกำหนดค่าไว้ ต้องดำเนินการเพิ่มเติม
ไม่บังคับ: หากคุณต้องการเข้าถึงบริการ Firebase บนเซิร์ฟเวอร์ ติดตั้ง Firebase SDK
คุณติดตั้งโมดูล Firebase Node.js ได้ด้วย
npm
ดังนี้$ npm init $ npm install --save firebase-admin
ในโค้ด คุณจะเข้าถึง Firebase ได้โดยใช้สิ่งต่อไปนี้
var admin = require('firebase-admin'); var app = admin.initializeApp({ credential: admin.credential.cert('path/to/serviceAccountCredentials.json') });
ถัดไป ให้ทำตามขั้นตอนการย้ายข้อมูลสำหรับแพลตฟอร์มของแอป ซึ่งได้แก่ Android, iOS, เว็บ
เซิร์ฟเวอร์และ JavaScript
การเปลี่ยนแปลงที่สำคัญ
มีความแตกต่างเพิ่มเติมอีกหลายประการในการใช้งานเว็บ Firebase จาก Identity Toolkit
การจัดการเซสชันของเว็บ
ก่อนหน้านี้ เมื่อผู้ใช้ตรวจสอบสิทธิ์โดยใช้วิดเจ็ต Identity Toolkit มีการตั้งค่าคุกกี้สำหรับผู้ใช้ที่ใช้เริ่มต้นเซสชัน คุกกี้นี้มีอายุการใช้งาน 2 สัปดาห์และใช้เพื่ออนุญาตให้ผู้ใช้ใช้งานได้ วิดเจ็ตการจัดการบัญชีเพื่อเปลี่ยนรหัสผ่านและอีเมล ใช้บ้าง เว็บไซต์ใช้คุกกี้นี้ในการตรวจสอบสิทธิ์คำขอหน้าเว็บอื่นๆ ทั้งหมดในเว็บไซต์ เว็บไซต์อื่นๆ ใช้คุกกี้เพื่อสร้างคุกกี้ของตนเองผ่าน ของเฟรมเวิร์ก
SDK ของไคลเอ็นต์ Firebase จัดการโทเค็นรหัส Firebase ได้แล้ว และทำงานด้วยแบ็กเอนด์ของการตรวจสอบสิทธิ์ Firebase เพื่อให้เซสชันมีข้อมูลล่าสุดอยู่เสมอ แบ็กเอนด์หมดอายุเซสชันเมื่อบัญชีที่สำคัญมีการเปลี่ยนแปลง (เช่น ผู้ใช้ มีการเปลี่ยนแปลง) โทเค็นรหัส Firebase จะไม่แสดงโดยอัตโนมัติ ตั้งเป็นคุกกี้ในเว็บไคลเอ็นต์และมีอายุเพียง 1 ชั่วโมงเท่านั้น เว้นแต่คุณจะ ต้องการเซสชันเพียง 1 ชั่วโมง โทเค็นรหัส Firebase ไม่เหมาะสมที่จะเป็น ใช้เป็นคุกกี้ในการตรวจสอบคำขอหน้าเว็บของคุณทั้งหมด แต่คุณจะ ต้องตั้งค่า Listener เมื่อผู้ใช้เข้าสู่ระบบ รับโทเค็นรหัส Firebase ตรวจสอบโทเค็น และสร้าง ผ่านระบบการจัดการคุกกี้ของเฟรมเวิร์ก
คุณจะต้องตั้งค่าอายุการใช้งานเซสชันของคุกกี้โดยอิงตาม ด้านความปลอดภัยของแอปพลิเคชัน
ขั้นตอนการลงชื่อเข้าใช้เว็บ
ก่อนหน้านี้ ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยัง
accountchooser.com
เมื่อลงชื่อเข้าใช้ เริ่มต้นเพื่อดูว่าผู้ใช้ต้องการใช้ตัวระบุใด การตรวจสอบสิทธิ์ Firebase ตอนนี้ขั้นตอนของ UI เริ่มต้นด้วยรายการวิธีการลงชื่อเข้าใช้ รวมถึงอีเมล ซึ่งจะไปที่accountchooser.com
สำหรับเว็บและใช้ hintRequest API ของคุณเปิดอยู่ Android นอกจากนี้ยังไม่ต้องใช้อีเมลใน Firebase อีกต่อไป UI ซึ่งจะทำให้สามารถสนับสนุนผู้ใช้ที่ไม่ระบุชื่อ ผู้ใช้การตรวจสอบสิทธิ์ที่กำหนดเอง ได้ง่ายขึ้น หรือผู้ใช้จากผู้ให้บริการที่ไม่จำเป็นต้องใช้อีเมลวิดเจ็ตการจัดการบัญชี
วิดเจ็ตนี้มี UI สำหรับให้ผู้ใช้เปลี่ยนอีเมล เปลี่ยน รหัสผ่านหรือยกเลิกการลิงก์บัญชีกับผู้ให้บริการข้อมูลประจำตัว ขณะนี้เวลา อยู่ระหว่างการพัฒนา
ปุ่ม/วิดเจ็ตลงชื่อเข้าใช้
ไม่มีวิดเจ็ต เช่น ปุ่มลงชื่อเข้าใช้และการ์ดผู้ใช้ให้บริการอีกต่อไป โฆษณาเหล่านี้ สามารถสร้างได้อย่างง่ายดายด้วย API การตรวจสอบสิทธิ์ของ Firebase
ไม่มี signOutUrl
คุณจะต้องโทรหา
firebase.auth.signOut()
และจัดการการติดต่อกลับไม่มี oobActionUrl
ขณะนี้การส่งอีเมลได้รับการจัดการโดย Firebase และได้รับการกำหนดค่าใน Firebase คอนโซลผู้ดูแลระบบ
การปรับแต่ง CSS
FirebaseUI ใช้การจัดรูปแบบ Material Design Lite ซึ่ง เพิ่มภาพเคลื่อนไหว Material Design แบบไดนามิก
ขั้นตอนที่ 1: เปลี่ยนรหัสเซิร์ฟเวอร์
หากเซิร์ฟเวอร์ของคุณใช้โทเค็น Identity Toolkit (ใช้ได้เป็นเวลา 2 สัปดาห์) เพื่อ จัดการเซสชันของผู้ใช้เว็บ คุณต้องแปลงเซิร์ฟเวอร์ให้ใช้ คุกกี้เซสชัน
- ใช้ปลายทางสำหรับการตรวจสอบโทเค็นรหัส Firebase และตั้งค่าคุกกี้ของเซสชันสำหรับผู้ใช้ แอปไคลเอ็นต์จะส่ง โทเค็นรหัส Firebase ไปยังปลายทางนี้
- หากคําขอที่เข้ามามีคุกกี้เซสชันของคุณเอง คุณจะทําสิ่งต่อไปนี้ได้ ถือว่าผู้ใช้ตรวจสอบสิทธิ์แล้ว มิฉะนั้น ให้ถือว่าคำขอเป็นแบบ ไม่มีการตรวจสอบสิทธิ์
- หากคุณไม่ต้องการให้ผู้ใช้ของคุณสูญเสียข้อมูลการเข้าสู่ระบบที่มีอยู่ คุณควรรอ 2 สัปดาห์สำหรับโทเค็น Identity Toolkit ทั้งหมด หมดอายุ หรือทำการตรวจสอบความถูกต้องของโทเค็นคู่สำหรับเว็บแอปพลิเคชัน ตามที่อธิบายไว้ด้านล่างในขั้นตอนที่ 3
เนื่องจากโทเค็น Firebase แตกต่างจาก Identity Toolkit คุณต้องอัปเดตตรรกะการตรวจสอบโทเค็น ติดตั้ง Firebase Server SDK ไปยังเซิร์ฟเวอร์ หรือหากคุณใช้ Firebase Server SDK ไม่รองรับภาษาที่ Firebase Server SDK ไม่รองรับ โปรดดาวน์โหลดไลบรารีการตรวจสอบโทเค็น JWT สำหรับสภาพแวดล้อมของคุณและตรวจสอบโทเค็นอย่างเหมาะสม
เมื่อทำการอัปเดตข้างต้นเป็นครั้งแรก คุณอาจยังมีเส้นทางโค้ดที่ ใช้โทเค็น Identity Toolkit หากมีแอปพลิเคชัน iOS หรือ Android ผู้ใช้จะต้องอัปเกรดแอปเป็นเวอร์ชันใหม่ เส้นทางโค้ดใหม่จะใช้งานได้ หากไม่ต้องการบังคับให้ผู้ใช้อัปเดต คุณสามารถเพิ่มตรรกะการตรวจสอบเซิร์ฟเวอร์เพิ่มเติมที่จะตรวจสอบ และพิจารณาว่าจำเป็นต้องใช้ Firebase SDK หรือ Identity Toolkit SDK สำหรับตรวจสอบโทเค็น หากคุณมีเฉพาะเว็บ คำขอการตรวจสอบสิทธิ์ใหม่ทั้งหมดจะย้ายไปที่ ดังนั้น คุณจึงต้องใช้เพียงโทเค็น Firebase เท่านั้น การยืนยันแบบ 2 ขั้นตอน
ดูเอกสารอ้างอิง Firebase Web API
ขั้นตอนที่ 2: อัปเดต HTML ของคุณ
เพิ่มโค้ดการเริ่มต้น Firebase ลงในแอปโดยทำดังนี้
- เปิดโปรเจ็กต์ในคอนโซล Firebase
- ในหน้าภาพรวม ให้คลิกเพิ่มแอป จากนั้นคลิกเพิ่ม Firebase ไปยัง เว็บแอป ระบบจะแสดงข้อมูลโค้ดที่เริ่มต้น Firebase
- คัดลอกและวางข้อมูลโค้ดการเริ่มต้นลงในหน้าเว็บ
เพิ่มการตรวจสอบสิทธิ์ FirebaseUI กับแอปของคุณดังนี้
<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>
นำ Identity Toolkit SDK ออกจากแอป
หากคุณใช้โทเค็นรหัส Identity Toolkit ในการจัดการเซสชัน คุณจะ ต้องทำการเปลี่ยนแปลงต่อไปนี้ในฝั่งไคลเอ็นต์
หลังจากลงชื่อเข้าใช้ด้วย Firebase สำเร็จแล้ว ให้รับโทเค็นรหัส Firebase ภายในวันที่ กำลังโทรหา
firebase.auth().currentUser.getToken()
ส่งโทเค็นรหัส Firebase ไปยังเซิร์ฟเวอร์แบ็กเอนด์ ตรวจสอบความถูกต้อง และแก้ปัญหา คุกกี้เซสชันของคุณเอง
อย่าอาศัยคุกกี้เซสชันเพียงอย่างเดียวเมื่อทําการค้นหาที่มีความละเอียดอ่อน หรือส่งคำขอแก้ไขที่ผ่านการตรวจสอบสิทธิ์ไปยังเซิร์ฟเวอร์ของคุณแล้ว คุณ จะต้องมีการปลอมแปลงคำขอแบบข้ามเว็บไซต์ (CSRF) เพิ่มเติม
หากเฟรมเวิร์กของคุณไม่มีการป้องกัน CSRF วิธีหนึ่งที่จะป้องกัน การโจมตีจะเป็นการรับโทเค็นรหัส Firebase สำหรับผู้ใช้ที่ลงชื่อเข้าใช้ กับ
getToken()
และรวมโทเค็นไว้กับคำขอแต่ละรายการ (เซสชัน จะส่งคุกกี้โดยค่าเริ่มต้น) จากนั้นคุณจะต้องตรวจสอบโทเค็นดังกล่าว โดยใช้ SDK เซิร์ฟเวอร์ Firebase นอกเหนือจากการตรวจสอบคุกกี้ของเซสชัน ซึ่งเฟรมเวิร์กแบ็กเอนด์ของคุณได้ทำเสร็จแล้ว ซึ่งจะทำให้ CSRF ให้โจมตีได้สำเร็จ เนื่องจากโทเค็นรหัส Firebase จัดเก็บโดยใช้ พื้นที่เก็บข้อมูลเว็บ และไม่อยู่ในคุกกี้โทเค็น Identity Toolkit จะใช้ได้เป็นเวลา 2 สัปดาห์ คุณอาจต้องการ ออกโทเค็นที่ผ่านไปแล้ว 2 สัปดาห์ต่อไป หรือคุณอาจ จะยาวหรือสั้นลงขึ้นอยู่กับข้อกำหนดด้านความปลอดภัยของแอป เมื่อผู้ใช้ออกจากระบบ ให้ล้างคุกกี้เซสชัน
ขั้นตอนที่ 3: อัปเดต URL เปลี่ยนเส้นทาง IDP
ในคอนโซล Firebase ให้เปิดส่วนการตรวจสอบสิทธิ์และคลิก แท็บวิธีการลงชื่อเข้าใช้
สำหรับผู้ให้บริการการลงชื่อเข้าใช้แบบรวมศูนย์แต่ละรายที่คุณรองรับ ให้ทำดังนี้
- คลิกชื่อผู้ให้บริการการลงชื่อเข้าใช้
- คัดลอก URI การเปลี่ยนเส้นทาง OAuth
- อัปเดตการเปลี่ยนเส้นทาง OAuth ใน Developer Console ของผู้ให้บริการการลงชื่อเข้าใช้ URI
Android
ขั้นตอนที่ 1: เพิ่ม Firebase ไปยังแอปของคุณ
เปิดคอนโซล Firebase และ เลือกโปรเจ็กต์ Identity Toolkit ที่คุณได้นำเข้าแล้ว
ในหน้าภาพรวม ให้คลิกเพิ่มแอป จากนั้นคลิกเพิ่ม Firebase ไปยัง แอป Android ของคุณ ระบุแพ็กเกจของแอปในกล่องโต้ตอบเพิ่ม Firebase ชื่อและลายนิ้วมือของใบรับรองที่ลงนาม แล้วคลิกเพิ่มแอป ระบบจะดาวน์โหลดไฟล์การกำหนดค่า
google-services.json
ลงใน คอมพิวเตอร์คัดลอกไฟล์การกำหนดค่าไปยังไดเรกทอรีรากโมดูลของแอป Android ช่วงเวลานี้ ประกอบด้วยข้อมูลโปรเจ็กต์และไคลเอ็นต์ OAuth ของ Google
ในไฟล์
build.gradle
ระดับโปรเจ็กต์ (<var>your-project</var>/build.gradle
) ระบุชื่อแพ็กเกจของแอปใน ส่วนdefaultConfig
:defaultConfig { ….. applicationId "com.your-app" }
นอกจากนี้ ในไฟล์
build.gradle
ระดับโปรเจ็กต์ ให้เพิ่มทรัพยากร Dependency ที่จะรวม ปลั๊กอิน google-servicesbuildscript { dependencies { // Add this line classpath 'com.google.gms:google-services:3.0.0' } }
ในไฟล์
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นอกจากนี้ในไฟล์
build.gradle
ระดับแอป ให้เพิ่มการตรวจสอบสิทธิ์ 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 ออก
- นำการกำหนดค่า Identity Toolkit ออกจาก
AndroidManifest.xml
ข้อมูลนี้จะรวมอยู่ในไฟล์google-service.json
และ ซึ่งโหลดโดยปลั๊กอิน google-services - นำ Identity Toolkit SDK ออกจากแอป
ขั้นตอนที่ 3: เพิ่ม FirebaseUI ลงในแอป
เพิ่มการตรวจสอบสิทธิ์ FirebaseUI กับแอปของคุณ
ในแอปของคุณ ให้แทนที่การเรียกใช้ Identity Toolkit SDK ด้วยการเรียก Firebase UI
iOS
ขั้นตอนที่ 1: เพิ่ม Firebase ไปยังแอปของคุณ
เพิ่ม Firebase SDK ลงในแอปโดยเรียกใช้คำสั่งต่อไปนี้
$ cd your-project directory $ pod init $ pod 'Firebase'
เปิดคอนโซล Firebase และ เลือกโปรเจ็กต์ Identity Toolkit ที่คุณได้นำเข้าแล้ว
ในหน้าภาพรวม ให้คลิกเพิ่มแอป จากนั้นคลิกเพิ่ม Firebase ไปยัง แอป iOS ของคุณ ในกล่องโต้ตอบเพิ่ม Firebase ให้ระบุรหัสชุดของแอป และ รหัส App Store จากนั้นคลิกเพิ่มแอป ระบบจะดาวน์โหลดไฟล์การกำหนดค่า
GoogleService-Info.plist
ลงใน คอมพิวเตอร์ หากคุณมีรหัสชุดหลายรายการในโปรเจ็กต์ รหัสชุดแต่ละรายการ ต้องเชื่อมต่อในคอนโซล Firebase เพื่อให้มีGoogleService-Info.plist
ไฟล์คัดลอกไฟล์การกำหนดค่าไปยังรูทของโปรเจ็กต์ Xcode แล้วเพิ่มลงใน เป้าหมายทั้งหมด
ขั้นตอนที่ 2: นำ Identity Toolkit SDK ออก
- นำ
GoogleIdentityToolkit
ออกจาก Podfile ของแอป - เรียกใช้คำสั่ง
pod install
ขั้นตอนที่ 3: เพิ่ม FirebaseUI ลงในแอป
เพิ่มการตรวจสอบสิทธิ์ FirebaseUI กับแอปของคุณ
ในแอปของคุณ ให้แทนที่การเรียกใช้ Identity Toolkit SDK ด้วยการเรียก Firebase UI