通过 GitHub 登录不上的反馈
今天早上收到一些关于使用 GitHub 登录不上的反馈,看了服务器日志发现是在用的 GitHub OAuth 应用被封禁了。
为什么通过 GitHub 登录不上会对社区造成很大影响?因为之前有很大一部分用户是通过 GitHub OAuth 注册的,注册后没有绑定邮箱,也没有绑定其他登录验证方式,所以一旦不能通过 GitHub 登录社区,就意味着没有任何其他方式能够成功登录。另外,有一部分用户还搭建了博客端节点,这也意味着他们登录不了自己伺服的博客,这是令人非常沮丧甚至是愤怒的。
封禁原因排查
以前曾经发工单和 GitHub 确认过关于 API 的调用频率,得到的答复是完全 OK 的,不会触发它们的风控。实际上在使用时调用频率也很低,仅在用户登录时会发起这些请求:
- 身份验证
- 拉取公开仓库
GitHub 官方文档也明确说明了带 token 的 API 调用频率限制是每小时 5K 次。而社区调用 API 的频率是远远不可能达到这个上限的,所以可以排除是技术原因导致的封禁。除了技术原因,那还剩下的原因就是违反了 GitHub API 使用规范,可是:
- 用户授权时没有任何额外的 scope,也就是使用默认的最小化权限获得 access token
- 拉取到的仓库信息都是公开仓库的信息,也没有任何商用目的
我实在想不出来到底是哪里违反了使用规范。为了弄清楚封禁原因,已发工单进行咨询,目前还没有得到答复。
如何解决问题
现在已经重新注册了一个 GitHub OAuth 应用从而恢复了登录。
为了长远考虑,我们需要从根本上解决问题。这个“根本”在于注册入口必须是完全自主可控的,所以我们决定关闭所有 OAuth 方式的注册,仅支持通过邮箱注册新账号。登录方式依然支持 OAuth 授权登录,在账号设置中进行绑定后就可以使用 OAuth 登录了,继续支持 OAuth 登录的目的在于方便。
这样一来,即使 OAuth 平台封禁了社区的应用或者他们服务宕机了,用户也能通过用户名/邮箱 + 密码的方式登录,进而降低账号登录失败的概率。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于