คู่มือทีละขั้นตอนสำหรับการพัฒนาตัวเชื่อมต่อโซเชียล
วิธีที่เร็วที่สุดในการเริ่มต้นคือคัดลอกรหัสจากตัวเชื่อมต่ออย่างเป็นทางการที่มีอยู่ แล้วปรับแต่งให้เหมาะกับความต้องการของคุณ ยกตัวอย่างเช่น ตัวเชื่อมต่อ GitHub
ขั้นตอนที่ 1: โคลนแพ็กเกจตัวเชื่อมต่อที่มีอยู่
ในโฟลเดอร์ซอร์สของตัวเชื่อมต่อ คุณจะพบไฟล์ต่อไปนี้:
index.ts: ไฟล์หลักของตัวเชื่อมต่อconstant.ts: ค่าคงที่ที่ใช้ในตัวเชื่อมต่อtypes.ts: ประเภท TypeScript ที่ใช้ในตัวเชื่อมต่อindex.test.ts: เคสทดสอบสำหรับตัวเชื่อมต่อmock.ts: ข้อมูล mock ที่ใช้ในเคสทดสอบของตัวเชื่อมต่อ
นอกจากไฟล์เหล่านี้ คุณยังต้องเตรียมไฟล์ README.md เพื่ออธิบายตัวเชื่อมต่อ, logo.svg (และอาจมี logo-dark.svg เพื่อประสบการณ์ dark mode ที่ดียิ่งขึ้น) และไฟล์ package.json เพื่อกำหนดข้อมูลแพ็กเกจ npm
ขั้นตอนที่ 2: แก้ไขไฟล์หลัก (index.ts)
ในไฟล์ index.ts คุณจะพบกับตรรกะหลักของตัวเชื่อมต่อ โดยทั่วไปจะมี 4 ฟังก์ชันที่คุณต้อง implement:
getAuthorizationUri: สร้าง URI สำหรับการอนุญาต (authorization) ของแพลตฟอร์มโซเชียลภายนอก สำหรับ GitHub จะเป็น:https://github.com/login/oauth/authorize?client_id={clientId}&redirect_uri={redirectUri}&state={state}โปรดดูเอกสารสำหรับนักพัฒนาของแพลตฟอร์มโซเชียลเป้าหมายของคุณเพื่อรับ URI ที่ถูกต้องauthorizationCallbackHandler: ตรวจสอบค่าพารามิเตอร์ที่ส่งกลับใน authorization callback URI, ดึงcodeสำหรับการอนุญาต และจัดการข้อผิดพลาดที่อาจเกิดขึ้นgetAccessToken: แลกเปลี่ยนcodeสำหรับการอนุญาตเป็นโทเค็นการเข้าถึง (access token)getUserInfo: ดึงข้อมูลผู้ใช้จากแพลตฟอร์มโซเชียลภายนอกโดยใช้ access token
ตรรกะทั่วไปอื่น ๆ ส่วนใหญ่ถูกจัดการไว้ใน Logto connector kit แล้ว ซึ่งจะช่วยให้งานของคุณง่ายขึ้น
สุดท้าย ในตอนท้ายของไฟล์ คุณเพียงแค่ export อ็อบเจกต์ตัวเชื่อมต่อ โดยใช้โครงสร้างโค้ดเดียวกับตัวเชื่อมต่อ GitHub
const createGithubConnector: CreateConnector<SocialConnector> = async ({ getConfig }) => {
return {
metadata: defaultMetadata,
type: ConnectorType.Social,
configGuard: githubConfigGuard,
getAuthorizationUri: getAuthorizationUri(getConfig),
getUserInfo: getUserInfo(getConfig),
};
};
ขั้นตอนที่ 3: ทดสอบตัวเชื่อมต่อ
การทดสอบหน่วย (Unit test)
เริ่มต้นด้วยการเขียนเคสทดสอบหน่วย และตรวจสอบให้แน่ใจว่าฟังก์ชันพื้นฐานทำงานถูกต้อง
การทดสอบในเครื่อง (Local test)
- ตั้งค่า Logto ในสภาพแวดล้อมเครื่องของคุณ: Logto มีหลายวิธีให้คุณรันในเครื่อง ไม่ว่าจะใช้ CLI, docker หรือ build จากซอร์สโค้ด ดูเอกสารสำหรับ รายละเอียดเพิ่มเติม
- ลิงก์ตัวเชื่อมต่อที่คุณสร้างเองเข้ากับ Logto instance ของคุณ: ใช้ CLI เพื่อสร้าง symbolic link ของตัวเชื่อมต่อไปยัง Logto instance ดูรายละเอียดเพิ่มเติม
cd logto
npx @logto/cli connector link -p . - หลังจากลิงก์ตัวเชื่อมต่อแล้ว คุณควรเห็นมันในโฟลเดอร์
<logto-root-path>/packages/core/connectors - รีสตาร์ท Logto instance ของคุณ แล้วไปที่ Logto Admin Console คุณควรเห็นตัวเชื่อมต่อในรายการ social connectors
- ตั้งค่าตัวเชื่อมต่อของคุณใน Console > Sign-in & account > Sign-up and sign-in > Social sign-in และลองใช้งานในแอปเดโมของเราด้วยฟีเจอร์ "Live preview"