• GitHub
  • Secret vault
  • Token storage
  • OAuth
  • Social sign-in

GitHub Apps กับ OAuth Apps: เลือกการเชื่อมต่อ GitHub ที่เหมาะสม

เปรียบเทียบ GitHub Apps กับ OAuth Apps สำหรับการเชื่อมต่อ Logto ศึกษาความแตกต่างหลักด้านความปลอดภัย, การอนุญาต, การจัดการโทเคน และเลือกวิธีการยืนยันตัวตนผ่าน GitHub ที่เหมาะกับแอปของคุณ

Ran
Ran
Product & Design

หยุดเสียเวลาเป็นสัปดาห์กับการยืนยันตัวตนผู้ใช้
เปิดตัวแอปที่ปลอดภัยเร็วขึ้นด้วย Logto ผสานการยืนยันตัวตนผู้ใช้ภายในไม่กี่นาทีและมุ่งเน้นที่ผลิตภัณฑ์หลักของคุณ
เริ่มต้นใช้งาน
Product screenshot

เมื่อรวมการยืนยันตัวตนผ่าน GitHub เข้ากับแอป Logto ของคุณ คุณมีสองทางเลือก: GitHub Apps และ GitHub OAuth Apps แม้ทั้งสองจะเปิดใช้งานฟังก์ชัน “ลงชื่อเข้าใช้ด้วย GitHub” ได้ แต่ก็มีประสบการณ์ที่แตกต่างกันอย่างชัดเจนในด้านความปลอดภัย การจัดการโทเคน และการเข้าถึง API คู่มือนี้จะช่วยให้คุณเห็นถึงความแตกต่างหลักและเลือกแนวทางที่เหมาะกับกรณีใช้งานของคุณ

พื้นหลัง: สองเส้นทางสำหรับการเชื่อมต่อ GitHub

คู่มือปัจจุบันของ Logto จะแนะนำขั้นตอนการตั้งค่า GitHub OAuth App สำหรับการล็อกอินโซเชียล ซึ่งเป็นทางเลือกที่ง่ายและตรงไปตรงมาสำหรับความต้องการยืนยันตัวตนขั้นพื้นฐาน อย่างไรก็ตาม GitHub Apps คือแนวทางสมัยใหม่ที่ GitHub แนะนำ ด้วยการเน้นความปลอดภัยและการควบคุมแบบละเอียด

ลองนึกภาพแบบนี้: OAuth Apps ก็เหมือนกับการให้กุญแจบ้านหลักกับใครสักคน—จะได้รับสิทธิ์เข้าถึงกว้างทันทีหลังอนุญาต ส่วน GitHub Apps เปรียบเสมือนระบบล็อกอัจฉริยะที่มีรหัสเฉพาะสำหรับแต่ละห้อง—ผู้ใช้สามารถอนุญาตแบบเจาะจงเฉพาะฟีเจอร์ที่แอปต้องการ

ความแตกต่างหลักแบบสรุปเร็ว

การอนุญาต: กว้างเทียบกับละเอียด

  • OAuth Apps ใช้ขอบเขตการอนุญาตแบบกว้าง—ร้องขอ repo จะได้สิทธิ์ควบคุม repo ทั้งหมด
  • GitHub Apps ใช้การอนุญาตแบบละเอียด—คุณเลือกได้แค่ “Issues: Read” โดยไม่แตะโค้ด ผู้ใช้ยังสามารถเลือก repo ที่จะอนุญาตในแต่ละครั้ง ไม่ต้องให้อำนาจแบบเหมาเข่ง

ความปลอดภัยของโทเคน: ถาวรเทียบกับหมดอายุ

  • OAuth Apps ออกโทเคนที่ไม่มีวันหมดอายุ (จนกว่าจะถูกเพิกถอนด้วยมือ) และไม่มีระบบรีเฟรช
  • GitHub Apps ใช้โทเคนแบบมีอายุสั้น (หมดอายุใน 1 ชั่วโมง) และรองรับการรีเฟรชอัตโนมัติ—ปลอดภัยกว่าสำหรับแอปที่ทำงานยาวนาน

ตัวตน: ผู้ใช้เทียบกับบอท

  • OAuth Apps จะดำเนินการแทนผู้ใช้ที่ให้สิทธิ์เสมอ (เช่น @octocat) และใช้ quota rate limit เดียวกัน (5,000 คำขอต่อชั่วโมง)
  • GitHub Apps สามารถกระทำเองด้วยตัวตนบอท (เช่น @my-app[bot]) และมี rate limit ที่ขยายขึ้นตามการใช้งาน—เหมาะกับงานระบบอัตโนมัติ

การควบคุมการเข้าถึง: ทั้งหมดหรือบางส่วน

  • OAuth Apps ต้องได้รับอนุญาตครั้งเดียวจนครบทุก resource
  • GitHub Apps ให้ผู้ใช้เลือก repo ระหว่างติดตั้ง พร้อมรับการแจ้งเตือนเปลี่ยนสิทธิ์แบบ webhook—โปร่งใสและควบคุมได้ดีกว่า

การคงอยู่: ขึ้นกับผู้ใช้เทียบกับไม่ขึ้น

  • OAuth Apps ผูกพันกับผู้ใช้ที่ให้สิทธิ์—ถ้านักพัฒนานั้นออกจากองค์กรหรือถูกตัดสิทธิ์ แอปจะหยุดทำงาน
  • GitHub Apps ยังใช้งานได้ ถึงแม้ผู้ที่สร้างหรือติดตั้งแอปจะออกจากองค์กร—ทำให้บริการต่อเนื่องสำหรับงานระบบอัตโนมัติและการเชื่อมต่อ

ควรเลือกอะไรดี?

ทั้ง GitHub Apps และ OAuth Apps สามารถใช้งานร่วมกับตัวเชื่อมต่อโซเชียลของ Logto ได้อย่างราบรื่น Logto Secret Vault เก็บโทเคนจากทั้งสองวิธีไว้อย่างปลอดภัย แต่แต่ละแบบจะให้ประสบการณ์ที่ต่างกัน:

ลงชื่อเข้าใช้แบบโซเชียลพื้นฐานด้วย OAuth Apps

ถ้าคุณแค่ต้องการยืนยันตัวผู้ใช้ (“ลงชื่อเข้าใช้ผ่าน GitHub”) และไม่ต้องเรียกใช้ API GitHub เพิ่มเติม การใช้ OAuth App จะเร็วและง่ายที่สุด:

  • ตั้งค่าง่าย: ผู้อนุญาต OAuth App ของคุณแล้วลงชื่อเข้าใช้ผ่าน GitHub
  • โทเคนมีอายุยาว (ไม่มีรีเฟรช): Logto เก็บ access token ใน Secret Vault แต่ไม่มีการรีเฟรช—โทเคนจึงใช้ได้จนกว่าจะถูกเพิกถอน
  • เหมาะสำหรับกรณีที่ต้องการเพียงข้อมูลตัวตนผู้ใช้ (อีเมล, ชื่อ, avatar) และไม่ทำงาน API หรือระบบอัตโนมัติ

ทำไมต้องเลือกทางนี้: เหมาะกับการสร้างต้นแบบหรือแอปที่ต้องการแค่ล็อกอินและซิงก์โปรไฟล์เป็นครั้งคราว

การเชื่อมต่อขั้นสูงด้วย GitHub Apps

เลือก GitHub App เมื่อแอปของคุณต้องการเข้าถึง GitHub API อย่างต่อเนื่อง งานอัตโนมัติ หรือความปลอดภัยที่เคร่งครัดมากขึ้น:

  • สิทธิ์แบบละเอียดและเลือก repo เป็นรายตัว ทำให้การเข้าถึงจำกัดและตรวจสอบง่าย
  • โทเคนมีอายุสั้น (ประมาณ 1 ชั่วโมง) และสามารถขอรีเฟรชโทเคนได้ เมื่อเปิดใช้งาน Logto จะเก็บทั้ง access และ refresh token ใน Secret Vault พร้อมดูแลการเปลี่ยนแปลงเพื่อให้ backend ของคุณทำงานต่อได้โดยไม่ต้องให้ผู้ใช้ล็อกอินใหม่
  • ตัวตนแบบบอท ช่วยให้กำหนด attribution ชัดเจนขึ้น และ rate limit ที่ปรับขนาดได้เหมาะกับงานอัตโนมัติหนัก ๆ

เหมาะสำหรับ:

  • แพลตฟอร์ม SaaS ที่บริหาร repo GitHub แทนผู้ใช้
  • เอเจนต์ AI ที่ทำงานกับโค้ด, issues หรือ pull requests
  • แอปที่ต้องเข้าถึง API อย่างต่อเนื่อง
  • เครื่องมือที่ทำงานเบื้องหลังแบบ automation

การตั้งค่า GitHub App กับ Logto

การตั้งค่า GitHub App คล้ายกับ OAuth Apps แต่มีความต่างสำคัญในบางจุด การโยกย้ายจาก OAuth App มาใช้ GitHub App ทำได้ง่ายมาก

การสร้าง GitHub App

  1. ไปที่ "GitHub Settings > Developer settings > GitHub Apps"

  2. กด "New GitHub App"

  3. ตั้งค่าดังนี้:

    • GitHub App name: ชื่อแอปของคุณ (ต้องไม่ซ้ำ)
    • Homepage URL: เว็บไซต์ของแอปของคุณ
    • Callback URL: URI สำหรับ callback ของ Logto connector (ใช้เหมือนกับ OAuth App)
    • Request user authorization (OAuth) during installation: เปิดใช้งานตรงนี้
    • Webhook: เป็นตัวเลือก แล้วแต่ต้องการ
    • Permissions: เลือกสิทธิ์แบบละเอียด (เช่น “Issues: Read”)
    • User permissions: เพิ่มสิทธิ์ account ถ้าดำเนินการแทนผู้ใช้
  4. สร้าง client secret (เหมือนกับ OAuth App)

integrate-github-apps.png

ตั้งค่ากับ Logto

การตั้งค่าตัวเชื่อม Logto เกือบเหมือนกันเลย:

  1. ใส่ Client ID จาก GitHub App ของคุณ
  2. เพิ่ม Client secret
  3. เปิด “จัดเก็บโทเคนเพื่อการเข้าถึง API แบบต่อเนื่อง” ถ้าต้องการเรียกใช้ API GitHub
  4. จุดต่างสำคัญ - Scopes:
    • ไม่เหมือน OAuth Apps (ที่ต้องกรอก scopes ในช่อง scope ของ Logto) สำหรับ GitHub Apps คุณเลือกการอนุญาตที่หน้า GitHub App เลย
    • เว้นช่อง scope ใน Logto ให้ว่างไว้ได้เลย
  5. ขอ refresh token (ถ้าต้องการ)
    • เพิ่ม offline_access ที่ช่อง scope ใน Logto เพื่อเปิด refresh token
    • GitHub จะออก refresh token ให้อัตโนมัติ และ Logto จะจัดการหมุนเวียนโทเคนกับเก็บใน Secret Vault เอง
    • หมายเหตุ: OAuth Apps ไม่รองรับ refresh token—access token จะไม่มีวันหมดอายุ ดังนั้น offline_access ไม่มีผล แตกต่างจากกรณีใช้ GitHub Apps

integrate-github-connector-in-logto.png

สรุป

แม้ OAuth Apps จะยังเป็นตัวเลือกที่ใช้ได้ดีสำหรับการยืนยันตัวตนขั้นพื้นฐาน แต่ GitHub Apps คืออนาคตของการเชื่อมต่อ GitHub ด้วยความปลอดภัยเหนือกว่า (โทเคนหมดอายุ), แบบจำลองการอนุญาตที่แม่นยำกว่า และการควบคุมของผู้ใช้ที่ดีกว่า

สำหรับผู้ใช้ Logto ทั้งสองแบบใช้งานร่วมกับตัวเชื่อมต่อโซเชียลได้ ขึ้นกับความต้องการของคุณ:

  • เริ่มต้นแบบง่ายด้วย OAuth Apps ถ้าต้องการแค่ยืนยันตัวตน
  • ขยับสู่ GitHub Apps เมื่อคุณต้องการเข้าถึง API, ระบบอัตโนมัติ หรือความปลอดภัยสูง

และอย่าลืม—Secret Vault ของ Logto และระบบจัดการรีเฟรชโทเคนอัตโนมัติ ทำให้การบริหารโทเคนของ GitHub Apps ง่ายเหมือน OAuth Apps โดยไม่ลดความปลอดภัย ไม่ว่าจะสร้างผู้ช่วยเขียนโค้ด AI แพลตฟอร์มจัดการโปรเจค หรือเครื่องมือช่วยผลิตของนักพัฒนา ตอนนี้คุณตัดสินใจเลือกการเชื่อมต่อ GitHub ที่เหมาะกับแอป Logto ของคุณได้แล้ว

พร้อมเริ่มต้นไหม? อ่านเพิ่มเติมที่ คู่มือเชื่อมต่อ GitHub ของ Logto เพื่อเริ่มต้นผนวกการยืนยันตัวตนด้วย GitHub เลยวันนี้

แหล่งข้อมูลเพิ่มเติม