OAuth 2.1

ឱ្យកម្មវិធីផ្សេងទៀតអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់របស់ពួកគេចូលដោយគណនី Bot-Hosting ដូច “ចូលដោយប្រើ Discord”។ បង្កើតលើ OAuth 2.1 និង PKCE ដូច្នេះកម្មវិធី OAuth ស្តង់ដារណាក៏ដំណើរការដែរ។

ប្រើសោ API ដើម្បីគ្រប់គ្រងគណនីរបស់អ្នកផ្ទាល់។ ប្រើ OAuth ពេលអ្នកបង្កើតកម្មវិធីដែលធ្វើសកម្មភាពលើគណនីរបស់អ្នកដទៃ ដើម្បីឱ្យពួកគេចូល និងយល់ព្រម ជំនួសឱ្យការបិទភ្ជាប់សោ។ ជំនួយការ AI ដូចជា ChatGPT ភ្ជាប់តាមដំណើរការដដែលនេះ។

លំដាប់ជំហាន

  1. 01 បង្កើតកម្មវិធី កំណត់ឈ្មោះ និង URI បញ្ជូនបន្តក្នុងការកំណត់អ្នកអភិវឌ្ឍរបស់អ្នក។ អ្នកទទួលបាន client_id សាធារណៈ ដោយគ្មានតម្លៃសម្ងាត់។
  2. 02 បញ្ជូនអ្នកប្រើប្រាស់ទៅផ្តល់ការអនុញ្ញាត បញ្ជូនបន្តទៅ /oauth/authorize ជាមួយ PKCE។ អ្នកប្រើប្រាស់ចូល ហើយយល់ព្រមលើវិសាលភាព។
  3. 03 ប្តូរកូដ ពួកគេត្រឡប់មកវិញជាមួយកូដ។ POST វាទៅ endpoint token ដើម្បីទទួលបាន token ចូលប្រើ។
  4. 04 ហៅ API ក្នុងនាមពួកគេ ផ្ញើ token ជា Bearer ទៅ /api/v1 ហើយធ្វើឱ្យស្រស់វានៅផ្ទៃខាងក្រោយ។

Endpoints

Endpointsគោលបំណង
GET /oauth/authorizeអេក្រង់យល់ព្រមរបស់អ្នកប្រើប្រាស់ បើកក្នុងកម្មវិធីរុករក។
POST /api/oauth/tokenប្តូរកូដយក token ឬធ្វើឱ្យស្រស់ token ដែលមានស្រាប់។
POST /api/oauth/registerDynamic Client Registration (RFC 7591), ស្រេចចិត្ត។
GET /.well-known/oauth-authorization-serverទិន្នន័យមេតាសម្រាប់ស្វែងរកការកំណត់ដោយស្វ័យប្រវត្តិ។
GET /.well-known/oauth-protected-resourceទិន្នន័យមេតារបស់ធនធាន ប្រើដោយកម្មវិធី MCP។

អាយុកាល token

កូដអនុញ្ញាត 10 នាទី ប្រើម្តង ភ្ជាប់ជាមួយ PKCE។
Token ចូលប្រើ 7 ថ្ងៃ Bearer សម្រាប់ការហៅ /api/v1។
Token ធ្វើឱ្យស្រស់ 30 ថ្ងៃ ប្តូរថ្មីរាល់ពេលប្រើ។

ធ្វើឱ្យស្រស់

រាល់ការធ្វើឱ្យស្រស់ត្រឡប់ token ធ្វើឱ្យស្រស់ថ្មីមួយ ហើយដកហូត token ចាស់៖ ត្រូវសរសេរជាន់លើ token ដែលបានរក្សាទុកជានិច្ច។ បើការធ្វើឱ្យស្រស់ត្រឡប់ invalid_grant សូមបញ្ជូនអ្នកប្រើប្រាស់ត្រឡប់ទៅជំហានទី 1។

សុវត្ថិភាព

  • រក្សា tokens នៅផ្នែក server ភ្ជាប់ជាមួយអ្នកប្រើប្រាស់របស់អ្នក។ កុំផ្ញើវាទៅកម្មវិធីរុករក ឬ repository សាធារណៈ។
  • Tokens ត្រូវបានដកហូតភ្លាមពេលអ្នកប្រើប្រាស់ផ្តាច់កម្មវិធីរបស់អ្នក។
  • ប្រើ URI បញ្ជូនបន្ត https ពេលប្រើជាក់ស្តែង។ http ត្រូវបានទទួលយកសម្រាប់ការសាកល្បងលើម៉ាស៊ីនផ្ទាល់ខ្លួន។
  • OAuth tokens មិនដែលផ្តល់សិទ្ធិអ្នកគ្រប់គ្រងទេ ទោះវិសាលភាពអ្វីត្រូវបានយល់ព្រមក៏ដោយ។