Для всех, у кого возникают проблемы с настройкой oauth2 для GitHub, вот решение.
Проблема: плагин oauth2 для Discourse выдаёт ошибку 500 при включении с GitHub, если поля в конфигурации указаны неверно. Поскольку документация скудна и не объясняет, что и как настраивать, ниже приведены важные (и некоторые дополнительные) поля:
OAuth2 client ID — Client ID из GitHub
OAuth2 client secret — 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),
- URL главной страницы,
- 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 — мне сказали, что новые пользователи могут добавлять не более двух ссылок в одном посте.
