كيفية استخدام OAuth2 مع GitHub

لكل هؤلاء الأشخاص الذين يواجهون مشاكل في جعل OAuth2 يعمل مع GitHub، إليكم حلاً.

المشكلة: ملحق OAuth2 في Discourse ينتج خطأ 500 عند تفعيله مع Github وعند عدم إعداد الحقول في التكوين بشكل صحيح. نظرًا لنقص التوثيق حول ما يجب تكوينه وكيفية ذلك، إليكم الحقول المهمة (وبعض الحقول الاختيارية):

OAuth2 client ID معرف العميل من GitHub
OAuth2 client secret سر العميل من GitHub
OAuth2 authorize URL https[:]//github[.]com/login/oauth/authorize
OAuth2 token URL https[:]//github[.]com/login/oauth/access_token
OAuth2 token URL method POST
OAuth2 user JSON URL https[:]//api.github[.]com/user
OAuth2 user JSON URL method GET
OAuth2 JSON user ID path id
OAuth2 JSON username path login
OAuth2 JSON name path name
OAuth2 JSON email path mail
OAuth2 JSON avatar path avatar_url
OAuth2 send auth header x
OAuth2 send auth body x
OAuth2 allow association change x

للتصحيح (للاختبار فقط):
OAuth2 debug auth x

على جانب GitHub، في حال كنت تفتقد هذه المعلومات كذلك، إليك ما يلزم:
انتقل إلى https[:]//github[.]com/settings/developers، وانقر على “New OAuth App”
أدخل اسم التطبيق (مثلاً Discourse)،
موقع الويب
و
عنوان رد الاتصال (https[:]//YOUR.DISCOURSESERV[.]ER/auth/oauth2_basic/callback)
ولا تنسى النقر على تحديث التطبيق.

هذا كل شيء.
آمل أن يساعد ذلك!

هل يمكنني طلب من المطورين التحقق من القيمة غير الصحيحة (لأنه فارغ) عند عدم ضبط “OAuth2 user JSON URL” بشكل إلزامي؟ لأنه ينتج عن ذلك خطأ ويرمي خطأ 500.

ActiveRecord::NotNullViolation (PG::NotNullViolation: خطأ: القيمة الفارغة في العمود “provider_uid” من العلاقة “user_associated_accounts” تنتهك قيد عدم القابلية للفراغ)

آسف على إخفاء الروابط، لقد قيل لي إن المستخدمين الجدد يمكنهم فقط أن يضعوا رابطين في المنشور.