GitHub와 oauth2 연동 문제로 어려움을 겪고 계신 분들을 위해 해결 방법을 공유합니다.
문제: Github를 사용하여 Discourse oauth2 플러그인을 활성화하고 설정 필드가 올바르게 설정되지 않으면 500 오류가 발생합니다. 무엇을 어떻게 설정해야 하는지에 대한 문서가 부족하므로, 여기 중요 필드(및 일부 선택 필드)를 나열합니다:
OAuth2 client ID GitHub의 Client ID
OAuth2 client secret GitHub의 Client Secret
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"을 클릭하세요.
Application Name (예: Discourse),
Homepage URL
그리고
Authorization callback URL (https[:]//YOUR.DISCOURSESERV[.]ER/auth/oauth2_basic/callback)
을 입력하고, Update application 버튼을 클릭하는 것을 잊지 마세요.
이것이 전부입니다.
도움이 되기를 바랍니다!
개발자들에게 요청할 수 있을까요? 필수 필드인 "OAuth2 user JSON URL"이 설정되지 않았을 때(비어 있어 무효한) 반환 값을 확인해 주시길 부탁드립니다. 이 경우 오류가 발생하고 500 오류가 나옵니다.
ActiveRecord::NotNullViolation (PG::NotNullViolation: ERROR: null value in column “provider_uid” of relation “user_associated_accounts” violates not-null constraint
URL을 가린 것에 대해 죄송합니다. 신규 사용자는 게시물당 링크를 2개까지만 사용할 수 있다는 말을 들었습니다.
