איך להשתמש ב-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),
כתובת Home Page
ותוכיח את כתובת ההחזרת הרשאה (https[:]//YOUR.DISCOURSESERV[.]ER/auth/oauth2_basic/callback)
ואל תשכח ללחוץ על עדכון אפליקציה.

זהו. מקווה שזה עוזר!

האם אפשר לבקש מהמהנדסים לבדוק את ההחזרה (שאינה תקינה כי היא ריקה) כאשר ה"OAuth2 user JSON URL" החובה אינו מוגדר? זה גורם לשגיאה ומייצר שגיאת 500.

ActiveRecord::NotNullViolation (PG::NotNullViolation: שגיאה: שווה null בעמודה “provider_uid” בטבלה “user_associated_accounts” מפר את ההגבלה של ה-not-null

סליחה על ההסתרה של הקישורים, הודיעו לי שניתן להוסיף רק 2 קישורים בכל פוסט.