如何使用 GitHub 配置 OAuth2

对于所有在使用GitHub进行OAuth2时遇到问题的人,这里有一个解决方案。

问题:当启用Discourse的oauth2插件并且配置中的字段没有正确设置时,会生成一个500错误。由于文档很少涉及具体的配置内容,这里列出一些重要(以及一些可选)的字段:

OAuth2客户端ID 从GitHub获取的客户端ID
OAuth2客户端密钥 从GitHub获取的客户端密钥
OAuth2授权URL https[:]//github[.]com/login/oauth/authorize
OAuth2令牌URL https[:]//github[.]com/login/oauth/access_token
OAuth2令牌URL方法 POST
OAuth2用户JSON URL https[:]//api.github[.]com/user
OAuth2用户JSON URL方法 GET
OAuth2 JSON用户ID路径 id
OAuth2 JSON用户名路径 login
OAuth2 JSON姓名路径 name
OAuth2 JSON邮箱路径 mail
OAuth2 JSON头像路径 avatar_url
OAuth2发送授权头 x
OAuth2发送授权体 x
OAuth2允许关联变更 x

仅用于调试:
OAuth2调试授权 x

在GitHub方面,如果你也缺少这些信息,这里也告诉你需要做什么:
访问 https[:]//github[.]com/settings/developers,点击"新的OAuth应用"
输入应用名称(例如 Discourse),
主页URL

授权回调URL(https[:]//YOUR.DISCOURSESERV[.]ER/auth/oauth2_basic/callback)
不要忘了点击"更新应用"。

就这些。 希望这可以帮助到你!

我能请开发者检查一下(因为空而无效的)当没有设置强制要求的"OAuth2用户JSON URL"时的返回值吗?这会生成这个错误并导致500错误。

ActiveRecord::NotNullViolation (PG::NotNullViolation: 错误: 在relation "user_associated_accounts"的列"provider_uid"中存在空值,违反了非空约束

抱歉由URLs造成的模糊,我被告知新用户每个帖子最多只能有两个链接。