เราได้เปิดตัว Google Identity Toolkit เวอร์ชันใหม่ล่าสุดในชื่อการตรวจสอบสิทธิ์ Firebase หลังจากนี้ เราจะหยุดการทำงานของฟีเจอร์ใน Identity Toolkit และการพัฒนาฟีเจอร์ใหม่ทั้งหมดจะดำเนินการใน Firebase Authentication เราขอแนะนำให้นักพัฒนา Identity Toolkit ย้ายไปใช้การตรวจสอบสิทธิ์ Firebase โดยเร็วที่สุดเท่าที่จะเป็นไปได้สำหรับแอปพลิเคชันของตน อย่างไรก็ตาม Identity Toolkit จะยังคงใช้งานได้ต่อไปและจะไม่มีการเลิกใช้งานโดยไม่มีการประกาศเพิ่มเติม
ฟีเจอร์ใหม่
การตรวจสอบสิทธิ์ Firebase มีการปรับปรุงฟีเจอร์ที่สำคัญบางอย่างอยู่แล้วเมื่อเทียบกับ Google Identity Toolkit ดังนี้
สิทธิ์เข้าถึง Firebase ทั้งหมด
Firebase เป็นแพลตฟอร์มมือถือที่ช่วยให้คุณสามารถพัฒนาแอปคุณภาพสูง ขยายฐานผู้ใช้ และสร้างรายได้เพิ่มได้อย่างรวดเร็ว Firebase ประกอบด้วย ฟีเจอร์เสริมที่คุณสามารถนำมาใช้ร่วมกันให้เหมาะกับความต้องการของคุณ และ มีโครงสร้างพื้นฐานสำหรับ ข้อมูลวิเคราะห์บนอุปกรณ์เคลื่อนที่ Cloud Messaging เรียลไทม์ดาต้าเบส ที่เก็บไฟล์ การโฮสต์แบบคงที่ การกำหนดค่าระยะไกล การรายงานข้อขัดข้องบนอุปกรณ์เคลื่อนที่ และ การทดสอบ Android
UI ที่อัปเดตแล้ว
เราได้สร้างขั้นตอน UI ใหม่ทั้งหมดโดยอิงตามการวิจัย UX ล่าสุดของ Google ซึ่งรวมถึงการกู้คืนรหัสผ่าน การลิงก์บัญชี ขั้นตอนการแยกความแตกต่างของบัญชีใหม่/ที่มีอยู่ ซึ่งมักต้องใช้เวลามากในการเขียนโค้ดและแก้ไขข้อบกพร่อง โดยผสานรวม Smart Lock สำหรับรหัสผ่าน ใน Android ซึ่งช่วยปรับปรุง Conversion การลงชื่อเข้าใช้และการลงชื่อสมัครใช้ สำหรับแอปที่เข้าร่วมได้อย่างมาก นอกจากนี้ยังรองรับการแก้ไขธีมได้อย่างง่ายดายเพื่อให้เข้ากับแอปพลิเคชันของคุณ และเพื่อการปรับแต่งสูงสุด เราได้เปิดซอร์สเวอร์ชัน Android และ iOS
การตั้งค่าเซิร์ฟเวอร์ที่ง่ายขึ้น
เราได้ปรับปรุงให้การใช้ Firebase Authentication สำหรับนักพัฒนาแอปง่ายขึ้น เมื่อใช้ ชุดเครื่องมือ Identity เราพบว่านักพัฒนาแอปจำนวนมากเลือกที่จะไม่ใช้ ขั้นตอนการกู้คืนอีเมล ซึ่งทำให้ผู้ใช้กู้คืน บัญชีไม่ได้หากลืมรหัสผ่าน การตรวจสอบสิทธิ์ Firebase สามารถ ส่งข้อความยืนยันทางอีเมล รีเซ็ตรหัสผ่าน และเปลี่ยนรหัสผ่านไปยัง ผู้ใช้ และปรับแต่งข้อความได้อย่างง่ายดาย สำหรับผู้ใช้ นอกจากนี้ คุณไม่จำเป็นต้องโฮสต์วิดเจ็ต UI สำหรับการโฮสต์การเปลี่ยนเส้นทางและ ดำเนินการเปลี่ยนรหัสผ่านให้เสร็จสมบูรณ์อีกต่อไป
คอนโซลผู้ดูแลระบบใหม่
Firebase มีคอนโซลของนักพัฒนาซอฟต์แวร์ใหม่ และส่วนการตรวจสอบสิทธิ์ช่วยให้คุณดู แก้ไข และลบผู้ใช้ได้ ซึ่งจะช่วยในการแก้ไขข้อบกพร่องของขั้นตอนการลงชื่อเข้าใช้และลงชื่อสมัครใช้ได้เป็นอย่างดี นอกจากนี้ คอนโซลยังช่วยให้คุณกำหนดค่าวิธีการตรวจสอบสิทธิ์และ ปรับแต่งเทมเพลตอีเมลได้ด้วย
SDK ใหม่
ตอนนี้ API ของเซิร์ฟเวอร์ทั้งหมดของ Identity Toolkit พร้อมให้บริการในแต่ละไลบรารีของไคลเอ็นต์ (Android, iOS, เว็บ) แล้ว นักพัฒนาแอปจะลงชื่อเข้าใช้และลงชื่อสมัครใช้ผู้ใช้เก่าและใหม่ เข้าถึงพร็อพเพอร์ตี้ของผู้ใช้ ลิงก์ อัปเดต และลบบัญชี รีเซ็ตรหัสผ่าน และอื่นๆ ได้โดยไม่ต้องเชื่อมโยงกับ UI ที่ตายตัว หากต้องการ คุณสามารถสร้างขั้นตอนการลงชื่อเข้าใช้และ ประสบการณ์ทั้งหมดด้วยตนเองบน API นี้ได้
การจัดการเซสชันสำหรับแอปบนอุปกรณ์เคลื่อนที่
เมื่อใช้ Identity Toolkit แอปจะสร้างสถานะเซสชันของตัวเองโดยอิงตาม เหตุการณ์การตรวจสอบสิทธิ์เริ่มต้นจาก Identity Toolkit Firebase Auth ใช้ บริการแบ็กเอนด์ที่ใช้โทเค็นการรีเฟรชซึ่งสร้างขึ้นจากเหตุการณ์การตรวจสอบสิทธิ์ และแลกเปลี่ยนเป็นโทเค็นเพื่อการเข้าถึงที่มีอายุ 1 ชั่วโมงสำหรับ Android, iOS และ JavaScript เมื่อผู้ใช้เปลี่ยนรหัสผ่าน โทเค็นการรีเฟรชจะสร้างโทเค็นเพื่อการเข้าถึงใหม่ไม่ได้อีกต่อไป ซึ่งจะปิดใช้การเข้าถึงจนกว่าผู้ใช้จะตรวจสอบสิทธิ์อีกครั้งในอุปกรณ์นั้น
การตรวจสอบสิทธิ์แบบไม่ระบุตัวตนและ GitHub
การตรวจสอบสิทธิ์ Firebase รองรับการตรวจสอบสิทธิ์ 2 ประเภทใหม่ ได้แก่ GitHub และ แบบไม่ระบุตัวตน การลงชื่อเข้าใช้แบบไม่ระบุตัวตนใช้เพื่อสร้าง User-ID ที่ไม่ซ้ำกันได้โดยไม่ต้อง ให้ผู้ใช้ผ่านกระบวนการลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ ตอนนี้คุณสามารถใช้ ผู้ใช้ที่ไม่ระบุตัวตนเพื่อทำการเรียก API ที่ผ่านการตรวจสอบสิทธิ์ได้แล้ว เช่นเดียวกับ ผู้ใช้ทั่วไป เมื่อผู้ใช้ตัดสินใจลงชื่อสมัครใช้บัญชี ระบบจะเก็บกิจกรรมทั้งหมดไว้ด้วยรหัสผู้ใช้เดียวกัน ซึ่งเหมาะสำหรับสถานการณ์ต่างๆ เช่น รถเข็นช็อปปิ้งฝั่งเซิร์ฟเวอร์หรือแอปพลิเคชันใดก็ตามที่คุณต้องการดึงดูด ผู้ใช้ก่อนที่จะส่งผู้ใช้ผ่านขั้นตอนการลงชื่อสมัครใช้
ความแตกต่างของฟีเจอร์
ขณะนี้ฟีเจอร์บางอย่างของ Identity Toolkit ยังไม่พร้อมใช้งานใน Firebase Authentication ส่วนฟีเจอร์อื่นๆ ได้รับการออกแบบใหม่และทำงานแตกต่างออกไป คุณอาจเลือกที่จะไม่ย้ายข้อมูลในทันทีหากฟีเจอร์เหล่านี้มีความสําคัญต่อแอปของคุณ ในหลายกรณี ฟีเจอร์เหล่านี้อาจไม่สําคัญต่อแอปของคุณ หรืออาจมีตัวเลือกสำรองที่ง่ายซึ่งจะช่วยให้คุณย้ายข้อมูลต่อไปได้
ความแตกต่างฝั่งเซิร์ฟเวอร์
บริการหลักของ 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 Authentication ฟังก์ชันการทํางานที่ REST API ของ Identity Toolkit มีให้จะรวมอยู่ใน SDK ของไคลเอ็นต์ที่พร้อมใช้งานสําหรับ Android, iOS และ JavaScript คุณสามารถใช้ SDK เพื่อลงชื่อเข้าใช้และลงชื่อสมัครใช้ของผู้ใช้ เข้าถึงข้อมูลโปรไฟล์ผู้ใช้ ลิงก์ อัปเดต และลบบัญชี รวมถึงรีเซ็ตรหัสผ่านโดยใช้ SDK ของไคลเอ็นต์แทนการสื่อสารกับบริการแบ็กเอนด์ผ่านการเรียก REST
การตรวจสอบสิทธิ์ FirebaseUI
เราได้สร้างขั้นตอน UI ทั้งหมดที่จัดการการลงชื่อเข้าใช้ การลงชื่อสมัครใช้ การกู้คืนรหัสผ่าน และการลิงก์บัญชีใหม่โดยใช้ SDK การตรวจสอบสิทธิ์ Firebase โดยมีให้ใช้งานเป็น SDK โอเพนซอร์สสำหรับ iOS และ Android เพื่อให้คุณ ปรับแต่งโฟลว์ได้อย่างสมบูรณ์ในแบบที่ Identity Toolkit ทำไม่ได้
ความแตกต่างเพิ่มเติมมีดังนี้
เซสชันและการย้ายข้อมูล
เนื่องจาก Identity Toolkit และ Firebase Authentication มีการจัดการเซสชันที่แตกต่างกัน ระบบจะสิ้นสุดเซสชันที่มีอยู่ของผู้ใช้เมื่อ อัปเกรด 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 Auth UI จะเริ่มต้นด้วยรายการวิธีการลงชื่อเข้าใช้ ซึ่งรวมถึงตัวเลือกอีเมล ที่ไปที่accountchooser.com
สำหรับเว็บและใช้ HintRequest API ใน Android นอกจากนี้ คุณไม่จำเป็นต้องระบุอีเมลใน Firebase UI อีกต่อไป ซึ่งจะช่วยให้เราสนับสนุนผู้ใช้ที่ไม่ระบุตัวตน ผู้ใช้การตรวจสอบสิทธิ์ที่กำหนดเอง หรือผู้ใช้จากผู้ให้บริการที่ไม่ต้องใช้อีเมลได้ง่ายขึ้นวิดเจ็ตการจัดการบัญชี
วิดเจ็ตนี้มี UI ให้ผู้ใช้เปลี่ยนอีเมล เปลี่ยนรหัสผ่าน หรือยกเลิกการลิงก์บัญชีจากผู้ให้บริการข้อมูลประจำตัว ขณะนี้ฟีเจอร์นี้อยู่ระหว่างการพัฒนา
ปุ่ม/วิดเจ็ตลงชื่อเข้าใช้
เราจะไม่ให้บริการวิดเจ็ต เช่น ปุ่มลงชื่อเข้าใช้และการ์ดผู้ใช้อีกต่อไป สร้างได้ง่ายมากโดยใช้ Firebase Authentication API
ไม่มี 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 ไม่รองรับ ให้ดาวน์โหลดไลบรารีการตรวจสอบโทเค็น JWT สําหรับสภาพแวดล้อมของคุณและตรวจสอบโทเค็นอย่างถูกต้อง
เมื่อทำการอัปเดตข้างต้นเป็นครั้งแรก คุณอาจยังคงมีเส้นทางโค้ดที่ ต้องใช้โทเค็น Identity Toolkit หากคุณมีแอปพลิเคชัน iOS หรือ Android ผู้ใช้จะต้องอัปเกรดเป็นแอปเวอร์ชันใหม่เพื่อให้เส้นทางโค้ดใหม่ทำงานได้ หากไม่ต้องการบังคับให้ผู้ใช้อัปเดตแอป คุณสามารถเพิ่มตรรกะการตรวจสอบเซิร์ฟเวอร์เพิ่มเติมที่ตรวจสอบโทเค็นและพิจารณาว่าต้องใช้ Firebase SDK หรือ Identity Toolkit SDK เพื่อตรวจสอบโทเค็นหรือไม่ หากมีเพียงเว็บแอปพลิเคชัน คำขอการตรวจสอบสิทธิ์ใหม่ทั้งหมดจะเปลี่ยนไปใช้ Firebase และคุณจึงต้องใช้วิธีการยืนยันโทเค็น Firebase เท่านั้น
ดูข้อมูลอ้างอิง Firebase Web API
ขั้นตอนที่ 2: อัปเดต HTML
เพิ่มโค้ดการเริ่มต้น Firebase ลงในแอปโดยทำดังนี้
- เปิดโปรเจ็กต์ในคอนโซล Firebase
- ในหน้าภาพรวม ให้คลิกเพิ่มแอป แล้วคลิกเพิ่ม Firebase ลงใน เว็บแอป ระบบจะแสดงโค้ดที่เริ่มต้น Firebase
- คัดลอกและวางข้อมูลโค้ดการเริ่มต้นลงในหน้าเว็บ
เพิ่ม FirebaseUI Auth ไปยังแอป
<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()
และรวมโทเค็นไว้กับคำขอแต่ละรายการ (ระบบจะส่งคุกกี้เซสชันโดยค่าเริ่มต้นด้วย) จากนั้นคุณจะตรวจสอบโทเค็นนั้น โดยใช้ Firebase Server SDK นอกเหนือจากการตรวจสอบคุกกี้เซสชัน ซึ่งเฟรมเวิร์กแบ็กเอนด์ของคุณทําเสร็จแล้ว ซึ่งจะทำให้การโจมตี CSRF ทำได้ยากขึ้น เนื่องจากระบบจะจัดเก็บโทเค็นรหัส Firebase โดยใช้ที่เก็บข้อมูลบนเว็บเท่านั้นและไม่จัดเก็บไว้ในคุกกี้โทเค็น Identity Toolkit มีอายุ 2 สัปดาห์ คุณอาจต้องการ ออกโทเค็นที่มีอายุ 2 สัปดาห์ต่อไป หรืออาจต้องการ เพิ่มหรือลดระยะเวลาตามข้อกำหนดด้านความปลอดภัยของแอป เมื่อผู้ใช้ออกจากระบบ ให้ล้างคุกกี้เซสชัน
ขั้นตอนที่ 3: อัปเดต URL เปลี่ยนเส้นทาง IdP
ในคอนโซล Firebase ให้เปิดส่วนการตรวจสอบสิทธิ์ แล้วคลิกแท็บวิธีการลงชื่อเข้าใช้
สำหรับผู้ให้บริการลงชื่อเข้าใช้แบบรวมศูนย์แต่ละรายที่คุณรองรับ ให้ทำดังนี้
- คลิกชื่อผู้ให้บริการลงชื่อเข้าใช้
- คัดลอก URI การเปลี่ยนเส้นทาง OAuth
- ในคอนโซลนักพัฒนาแอปของผู้ให้บริการลงชื่อเข้าใช้ ให้อัปเดต URI การเปลี่ยนเส้นทาง OAuth
Android
ขั้นตอนที่ 1: เพิ่ม Firebase ไปยังแอป
เปิดคอนโซล Firebase แล้ว เลือกโปรเจ็กต์ Identity Toolkit ที่คุณนำเข้าแล้ว
ในหน้าภาพรวม ให้คลิกเพิ่มแอป แล้วคลิกเพิ่ม Firebase ลงใน แอป Android ในกล่องโต้ตอบเพิ่ม Firebase ให้ระบุชื่อแพ็กเกจ และลายนิ้วมือของใบรับรองการลงนามของแอป แล้วคลิกเพิ่มแอป จากนั้นระบบจะดาวน์โหลดไฟล์การกำหนดค่า
google-services.json
ลงในคอมพิวเตอร์คัดลอกไฟล์การกำหนดค่าไปยังไดเรกทอรีรากโมดูลของแอป Android ไฟล์การกำหนดค่านี้มีข้อมูลโปรเจ็กต์และไคลเอ็นต์ Google OAuth
ใน
build.gradle
ไฟล์ (<var>your-project</var>/build.gradle
)ระดับโปรเจ็กต์ ให้ระบุชื่อแพ็กเกจของแอปใน ส่วนdefaultConfig
defaultConfig { ….. applicationId "com.your-app" }
นอกจากนี้ ในไฟล์
build.gradle
ระดับโปรเจ็กต์ ให้เพิ่มทรัพยากร Dependency เพื่อรวม ปลั๊กอิน google-services ดังนี้buildscript { 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
ระดับแอป ให้เพิ่มทรัพยากร 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 ออก
- นำการกำหนดค่า Identity Toolkit ออกจาก
AndroidManifest.xml
ไฟล์ ข้อมูลนี้จะรวมอยู่ในไฟล์google-service.json
และ โหลดโดยปลั๊กอิน google-services - นำ Identity Toolkit SDK ออกจากแอป
ขั้นตอนที่ 3: เพิ่ม FirebaseUI ลงในแอป
เพิ่ม FirebaseUI Auth ไปยังแอป
ในแอป ให้แทนที่การเรียกใช้ Identity Toolkit SDK ด้วยการเรียกใช้ FirebaseUI
iOS
ขั้นตอนที่ 1: เพิ่ม Firebase ไปยังแอป
เพิ่ม Firebase SDK ลงในแอปโดยเรียกใช้คําสั่งต่อไปนี้
$ cd your-project directory $ pod init $ pod 'Firebase'
เปิดคอนโซล Firebase แล้ว เลือกโปรเจ็กต์ Identity Toolkit ที่คุณนำเข้าแล้ว
ในหน้าภาพรวม ให้คลิกเพิ่มแอป แล้วคลิกเพิ่ม Firebase ลงในแอป iOS ในกล่องโต้ตอบเพิ่ม Firebase ให้ระบุ Bundle ID และรหัส App Store ของแอป แล้วคลิกเพิ่มแอป จากนั้นระบบจะดาวน์โหลด
GoogleService-Info.plist
ไฟล์การกำหนดค่าลงในคอมพิวเตอร์ หากมี Bundle ID หลายรายการในโปรเจ็กต์ คุณต้องเชื่อมต่อ Bundle ID แต่ละรายการในคอนโซล Firebase เพื่อให้มีไฟล์GoogleService-Info.plist
ของตัวเองคัดลอกไฟล์การกำหนดค่าไปยังรูทของโปรเจ็กต์ Xcode แล้วเพิ่มลงในเป้าหมายทั้งหมด
ขั้นตอนที่ 2: นำ Identity Toolkit SDK ออก
- นำ
GoogleIdentityToolkit
ออกจาก Podfile ของแอป - เรียกใช้คำสั่ง
pod install
ขั้นตอนที่ 3: เพิ่ม FirebaseUI ลงในแอป
เพิ่ม FirebaseUI Auth ไปยังแอป
ในแอป ให้แทนที่การเรียกใช้ Identity Toolkit SDK ด้วยการเรียกใช้ FirebaseUI