# GitHub Apps กับ OAuth Apps: เลือกการเชื่อมต่อ GitHub ที่ใช่
เปรียบเทียบ GitHub Apps กับ OAuth Apps สำหรับการเชื่อมต่อกับ Logto เรียนรู้ความแตกต่างสำคัญด้านความปลอดภัย, การอนุญาตสิทธิ์, การจัดการโทเค็น และเลือกวิธีการยืนยันตัวตนของ GitHub ที่เหมาะสมกับแอปของคุณ
เมื่อผสาน GitHub authentication เข้ากับแอป Logto ของคุณ คุณมีสองทางเลือก: GitHub Apps และ GitHub OAuth Apps แม้จะให้ฟังก์ชัน "Sign in with GitHub" ได้เหมือนกัน แต่ทั้งสองแบบมอบประสบการณ์ที่แตกต่างกันอย่างสิ้นเชิงในเรื่องความปลอดภัย การจัดการโทเค็น และสิทธิ์การเข้าถึง API คู่มือนี้จะช่วยให้คุณเข้าใจความแตกต่างหลัก ๆ และเลือกวิธีที่เหมาะสมกับเคสของคุณ
พื้น หลัง: สองเส้นทางสู่การผสาน GitHub
เอกสารของ Logto ในปัจจุบันจะแนะนำให้คุณตั้งค่า GitHub OAuth App สำหรับ social sign-in ซึ่งเป็นตัวเลือกที่ง่ายและตรงไปตรงมาสำหรับความต้องการ authenticate พื้นฐาน อย่างไรก็ตาม GitHub Apps คือแนวทางใหม่ที่ทาง GitHub แนะนำเองที่ให้ความปลอดภัยเหนือกว่าและควบคุมได้ละเอียดกว่า
ลองนึกภาพแบบนี้: OAuth Apps ก็เหมือนคุณให้กุญแจบ้านหลักกับใครสักคน—ได้รับสิทธิ์เข้าถึงกว้างขวางทันทีที่ได้รับอนุญาต ขณะที่ GitHub Apps เปรียบเหมือนระบบล็อกดิจิตอลที่เข้าถึงได้เฉพาะห้องที่คุณระบุ—ผู้ใช้สามารถให้สิทธิ์เพียงบางส่วนที่แอปคุณต้องการเท่านั้น
ความแตกต่างสำคัญ (Key differences)
การอนุญาตสิทธิ์: กว้างขวาง กับ ละเอียดเฉพาะเจาะจง
- OAuth Apps ใช้ scopes ที่กว้าง—ขอ
repoก็ได้สิทธิ์ควบคุม repo ทั้งหมด - GitHub Apps ใช้การอนุญาตแบบละเอียด—ขอแค่อ่าน Issues อย่างเดียวได้โดยไม่ยุ่งกับโค้ด ผู้ใช้ยังสามารถเลือก repo ที่ต้องการให้สิทธิ์ขณะติดตั้งได้ ไม่ได้ให้สิทธิ์ทั้งหมดยกชุด
ความปลอดภัยของโทเค็น: ถาวร กับ หมดอายุ
- OAuth Apps ออกโทเค็นที่ไม่มีวันหมดอายุ (จนกว่าจะถูกยกเลิก) และไม่มีระบบรีเฟรชโทเค็น
- GitHub Apps ใช้โทเค็นชั่วคราว (หมดอายุใน 1 ชั่วโมง) พร้อมรองรับการรีเฟรชอัตโนมัติ—ปลอดภัยกว่ามากสำหรับแอปที่ต้องทำงานระยะยาว
ตัวตน: ผู้ใช้ กับ บอท
- OAuth Apps ทำงานในนามผู้ใช้ผู้อนุญาตเสมอ (เช่น
@octocat) และใช้ 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 social connector ได้ทั้งคู่ Logto's Secret Vault จะเก็บโทเค็นจากแบบไหนก็ได้อย่างปลอดภัย แต่แต่ละแบบจะให้ประสบการณ์แตกต่างกัน:
Sign-in แบบโซเชียลพื้นฐานด้วย OAuth Apps
ถ้าคุณแค่ยืนยันตัวตนผู้ใช้ (Sign in with GitHub) และไม่จำเป็นต้องเรียกใช้ GitHub API ในภายหลัง OAuth App คือทางเลือกที่เร็วที่สุด:
- ตั้งค่ายุ่งยากน้อย: ผู้ใช้อนุญาต OAuth App และเข้าระบบผ่าน GitHub
- โทเค็นอายุยืน (ไม่มี refresh): Logto สามารถเก็บ access token ไว้ใน Secret Vault แต่จะไม่มี flow สำหรับ refresh—โทเค็นจะใช้ได้จนกว่าจะถูกเพิกถอน
- เหมาะเมื่อแค่ต้องการข้อมูลระบุตัวตนผู้ใช้ (อีเมล, ชื่อ, อวตาร) และไม่ได้ทำงานอัตโนมัติบน API
เหตุผลที่ควรเลือก: เร็ว เหมาะกับโปรโตไทป์หรือแอปที่ต้องการแค่ล็อกอินและ sync โปรไฟล์เป็นครั้งครา ว
ผสาน GitHub ขั้นสูงด้วย GitHub Apps
เลือกใช้ GitHub App เมื่อแอปของคุณต้องการเข้าใช้ GitHub API ต่อเนื่อง, ทำงานเบื้องหลังอัตโนมัติ หรือเน้นความปลอดภัยเป็นพิเศษ:
- สิทธิ์อนุญาตแบบละเอียด และเลือก repo ขณะติดตั้ง ช่วยจำกัดสิทธิ์และตรวจสอบได้ง่าย
- Token อายุสั้น (ส่วนใหญ่ 1 ชั่วโมง) GitHub Apps รองรับ refresh token; เมื่อใช้งาน Logto จะเก็บ access token กับ refresh token ไว้ใน Secret Vault และจัดการ rotation ให้อัตโนมัติ backend ใช้งานได้ต่อเนื่องไม่ต้องให้ผู้ใช้ login ใหม่
- ตัวตนแบบบอทช่วยระบุที่มา ปรับขยาย rate limit ทำให้เหมาะมากกับงานอัตโนมัติหนัก
เหมาะที่สุดสำหรับ:
- SaaS ที่บริหารจัดการ repo ให้ผู้ใช้
- AI agent ที่โต้ตอบกับโค้ด issues หรือ pull request
- แอปที่ต้องการใช้ API ต่อเนื่อง
- เครื่องมือที่รัน automation เบื้องหลัง
การตั้งค่า GitHub App กับ Logto
การตั้งค่า GitHub App จะคล้ายกับ OAuth Apps แต่มีข้อสังเกตไม่กี่จุด การย้ายจาก OAuth App ไป GitHub App ใช้เวลาน้อย
การสร้าง GitHub App
-
ไปที่ "GitHub Settings > Developer settings > GitHub Apps"
-
คลิก "New GitHub App"
-
กำหนดค่า:
- GitHub App name: ชื่อแอปของคุณ
- Homepage URL: เว็บไซต์ของแอปคุณ
- Callback URL: callback URI ของ Logto connector (เหมือน OAuth App)
- Request user authorization (OAuth) during installation: เปิดใช้งานตรงนี้
- Webhook: ตามต้องการ
- Permissions: เลือก permission แบบละเอียด (เช่น "Issues: Read")
- User permissions: เพิ่ม account permission ถ้าต้องดำเนินการแทนผู้ใช้
-
สร้าง client secret (เหมือนกั บ OAuth App)

ตั้งค่าบน Logto
การตั้งค่าบน Logto connector จะคล้ายเดิม:
- ใส่ Client ID จาก GitHub App
- เพิ่ม Client secret
- เปิดใช้ "Store tokens for persistent API access" ถ้าแอปคุณจะเรียกใช้ GitHub API
- จุดแตกต่างสำคัญ - Scopes:
- ต่างจาก OAuth Apps (ที่ต้องเพิ่ม scopes ในช่อง scope ของ Logto) GitHub App เลือก permission ในหน้า settings ของ GitHub App เอง
- ปล่อยช่อง scope ใน Logto ว่างไว้ได้เลย
- ขอ refresh token (ถ้าต้องการ)
- ใส่
offline_accessในช่อง scope ของ Logto เพื่อเปิดใช้งาน refresh token - GitHub จะออก refresh token และ Logto จะหมุนเวียนโทเค็นอย่างอัตโนมัติและเก็บทั้งคู่ไว้ใน Secret Vault
- หมายเหตุ: OAuth Apps ไม่รองรับ refresh token—access token ไม่หมดอายุ ดังนั้น
offline_accessจะไม่มีผล อันนี้แตกต่างถ้าใช้ GitHub Apps ในการเชื่อมต่อ
- ใส่

สรุป
แม้ OAuth Apps จะยังใช้ได้สำหรับการยืนยันตัวตนพื้นฐาน แต่ GitHub Apps คืออนาคตของการผสาน GitHub ที่ให้ความปลอดภัยดีกว่า ทั้งเรื่องโทเค็นหมดอายุ สิทธิ์ละเอียดกว่า และผู้ใช้ควบคุมการเข้าถึงได้ดีขึ้น
สำหรับผู้ใช้ Logto ทั้งสองแบบใช้กับ social connector ได้ ความต่างคือความต้องการใช้งานของคุณ:
- เริ่มง่ายด้วย OAuth Apps ถ้าแค่ต้องการ authenticate
- อัปเกรดเป็น GitHub Apps ถ้าต้องใช้ API, ทำ automation หรือเน้นความปลอดภัยเพิ่ม
และอย่าลืม — Secret Vault ของ Logto กับระบบ refresh โทเค็นอัตโนมัติทำให้จัดการโทเค็นของ GitHub App ง่ายเหมือน OAuth Apps แต่ปลอดภัยกว่า ไม่ว่าจะสร้างผู้ช่วยโค้ด AI แพลตฟอร์มจัดการโปรเจกต์ หรือเครื่องมือเพิ่ม productivity นักพัฒนา คุณก็เลือกการเชื่อมต่อ GitHub ที่เหมาะกับแอป Logto ของคุณได้แล้ว
พร้อมเริ่มหรือยัง? ดู Logto's GitHub connector เพื่อเริ่มผสาน GitHub authentication วันนี้

