การผสานรวม Passport.js กับ Logto
คู่มือปฏิบัติและตัวอย่างในการผสานรวม Passport.js กับ Logto
Passport.js เป็นมิดเดิลแวร์การตรวจสอบสิทธิ์สำหรับ Node.js ที่สามารถเพิ่มเข้าไปในแอปพลิเคชันเว็บที่ใช้ Express ได้อย่างไม่แพร่หลาย คู่มือที่ครอบคลุมนี้จะเน้นการใช้ปลั๊กอิน passport-openidconnect
ซึ่งเสนอวิธีที่ง่ายแต่มีประสิทธิภาพในการผสานรวม Logto กับ Passport.js ในระหว่างบทแนะนำนี้ เราจะใช้ Express.js ในการสร้างแอปพลิเคชันของเรา โค้ดทั้งหมดที่เราจะพูดถึงสามารถพบได้ใน GitHub repository สาธารณะ
การตั้งค่า express พร้อมกับเซสชัน
ก่อนที่จะเข้าสู่กระบวนการผสานรวม เราจำเป็นต้องตั้งค่าโปรเจกต์พื้นฐานด้วยการติดตั้ง Express.js และมิดเดิลแวร์เซสชันของมัน
สมมติว่าคุณมีสภาพแวดล้อมโปรเจกต์ TypeScript ที่เตรียมไว้แล้ว (ถ้าไม่ ให้ดู เอกสารทางการของ TypeScript) เริ่มด้วยการติดตั้งแพคเกจที่จำเป็น:
เตรียมไฟล์หลัก
สร้าง src/app.ts
ด้วยโค้ดต่อไปนี้:
สคริปต์นี้เริ่มต้นแอป Express และตั้งค่า cookieParser
และมิดเดิลแวร์ session
สำหรับการจัดการเซสชันที่ใช้คุกกี้ ซึ่งจำเป็นสำหรับการเก็บผลการตรวจสอบสิทธิ์ใน Passport.js แล้วมันจะใช้โมดูล http
เพื่อเปิดบริการ
การสร้างแอป Logto
ในการดำเนินการต่อ จำเป็นต้องมีแอป Logto สร้างหนึ่งแอปโดยไปที่ Logto Console นำทางไปที่ “Applications” แล้วคลิก “Create application” เลือก “Express” ตั้งชื่อแอปพลิเคชันของคุณ แล้วคลิก “Create application”
หลังจากเสร็จสิ้นหรืออ่านคู่มือการสร้างเสร็จแล้ว คุณจะพบหน้าเฉพาะทางที่มีข้อมูลการตั้งค่าสำหรับขั้นตอนต่อไป
การตั้งค่า URIs
ในหน้ารายละเอียดแอปพลิเคชัน กำหนดค่าใหม่สองค่า:
- Redirect URIs: ตั้งค่านี้เป็น
http://localhost:3000/callback
ให้สอดคล้องกับเส้นทางการเรียกกลับของโปรเจกต์ - Post Sign-out Redirect URIs: ใช้
http://localhost:3000
เพื่อความง่ายในการนำผู้ใช้ไปยังหน้าแรกหลังจากเซ็นสัญญาออก
คุณสามารถเปลี่ยนค่าดังกล่าวได้ในภายหลัง