การสร้างตัวเชื่อมต่อสังคมสำหรับ Logto
เรียนรู้วิธีสร้างตัวเชื่อมต่อสังคมที่กำหนดเองสำหรับ Logto ในไม่กี่ขั้นตอน
พื้นหลัง
การลงชื่อเข้าใช้ด้วยเครือข่ายสังคมเป็นสิ่งที่ต้องมีสำหรับแอพพลิเคชันสมัยใหม่ ช่วยให้ขั้นตอนการลงทะเบียนผู้ใช้สะดวกขึ้น เพิ่มประสบการณ์ผู้ใช้ และเพิ่มการมีส่วนร่วมและอัตราการเปลี่ยนผู้ใช้ ใน Logto เราใช้ตัวเชื่อมต่อสังคมในการลงชื่อเข้าใช้กับผู้ให้บริการระบุตัวตนภายนอก
ตัวเชื่อมต่อคืออะไร?
ตัวเชื่อมต่อคือตัวโปรแกรมขนาดเล็กที่เชื่อมต่อ Logto กับบริการภายนอก มีหน้าที่จัดการกระบวนการลงชื่อเข้าใช้ แลกเปลี่ยนโทเค็น และดึงข้อมูลผู้ใช้จากบริการภายนอก
Logto มีตัวเชื่อมต่อทางการที่หลากหลายเพื่อช่วยให้การผนวกเข้ากับแพลตฟอร์มสังคมต่าง ๆ ง่ายขึ้น ณ วันนี้ มีตัวเชื่อมต่อมากกว่า 30 ตัว ที่มีอยู่แล้ว โดยในนั้นมีมากกว่า 10 ตัวที่ถูกพัฒนาโดยชุมชนโอเพนซอร์ส และเราคาดว่าตัวเลขนี้จะเติบโตอย่างรวดเร็วในอนาคต
อย่างไรก็ตาม เราเข้าใจว่ายังมีแพลตฟอร์มอื่น ๆ อีกมากที่ยังไม่ได้รับการรองรับอย่างเป็นทางการจาก Logto ในขณะนี้ โชคดีที่ในฐานะแพลตฟอร์มโอเพนซอร์ส คุณสามารถสร้างตัวเชื่อมต่อที่กำหนดเองได้ง่าย ๆ ดังนั้นในโพสต์นี้ มาดูกันว่าวิธีการสร้างตัวเชื่อมต่อสังคมที่กำหนดเองสำหรับ Logto ในไม่กี่ขั้นตอน
การทำงานของการลงชื่อเข้าใช้
ก่อนที่เราจะเริ่ม มาทำความเข้าใจว่ากระบวนการลงชื่อเข้าใช้งานเครือข่ายสังคมใน Logto ทำงานอย่างไร
มาลุยกันเลย
วิธีที่เร็วที่สุดในการเริ่มต้นคือคัดลอกโค้ดจากตัวเชื่อมต่อทางการที่มีอยู่และปรับเปลี่ยนให้ตรงต่อความต้องการของคุณ มาลองดูตัวเชื่อมต่อของ GitHub เป็นตัวอย่าง
ขั้นตอนที่ 1: คลีนตัวเชื่อมต่อแพ็กเกจที่มีอยู่
ในโฟลเดอร์ต้นทางของตัวเชื่อมต่อ คุณจะพบไฟล์ดังต่อไปนี้:
index.ts
: ไฟล์เริ่มต้นของตัวเชื่อมต่อconstant.ts
: ค่าคงที่ที่ใช้ในตัวเชื่อมต่อtypes.ts
: TypeScript types ที่ใช้ในตัวเชื่อมต่อindex.test.ts
: กรณีทดสอบสำหรับตัวเชื่อมต่อmock.ts
: ข้อมูลจำลองที่ใช้ในการทดสอบตัวเชื่อมต่อ
นอกจากไฟล์เหล่านี้แล้ว คุณยังต้องให้ไฟล์ README.md
เพื่ออธิบายตัวเชื่อมต่อ logo.svg
(หรือเป็น logo-dark.svg
เพื่อประสบการณ์การใช้โหมดมืดที่ดีกว่า) และไฟล์ package.json
เพื่อกำหนดข้อมูลแพ็กเกจ npm
ขั้นตอนที่ 2: ปรับเปลี่ยนไฟล์เริ่มต้นหลัก (index.ts)
ในไฟล์ index.ts
คุณจะพบกับตรรกะหลักของตัวเชื่อมต่อ โดยปกติแล้วจะต้องมีการทำฟังก์ชัน 4 ฟังก์ชันดังนี้:
getAuthorizationUri
: สร้าง URI สิทธิ์สำหรับแพลตฟอร์มสังคมภายนอก สำหรับ GitHub จะเป็น:https://github.com/login/oauth/authorize?client_id={clientId}&redirect_uri={redirectUri}&state={state}
โปรดอ้างอิงจากเอกสารสำหรับนักพัฒนาของแพลตฟอร์มสังคมที่คุณต้องการเพื่อรับ URI ที่ถูกต้องauthorizationCallbackHandler
: ป้องกันค่าพารามิเตอร์ที่ส่งกลับใน URI การเรียกกลับสิทธิ์ แยกโค้ดสิทธิ์ และจัดการกับข้อผิดพลาดที่ อาจเกิดขึ้นgetAccessToken
: แลกเปลี่ยนโค้ดสิทธิ์เป็นโทเค็นการเข้าถึงgetUserInfo
: ดึงข้อมูลผู้ใช้จากแพลตฟอร์มสังคมภายนอกด้วยโทเค็นการเข้าถึง
ส่วนใหญ่ของตรรกะทั่วไปอื่น ๆ ได้ถูกจัดการในชุดเครื่องมือเชื่อมต่อ Logto ซึ่งจะช่วยให้งานของคุณง่ายขึ้น
สุดท้าย ในปลายไฟล์ คุณเพียงแค่ต้องส่งออกวัตถุของตัวเชื่อมต่อ ตามโครงสร้างโค้ดเดียวกันกับตัวเชื่อมต่อของ GitHub
ขั้นตอนที่ 3: ทดสอบตัวเชื่อมต่อ
การทดสอบหน่วย
ก่อนเขียนกรณีทดสอบหน่วยบางส่วนและตรวจสอบให้แน่ใจว่าการทำงานพื้นฐานทำงานตามที่คาดไว้