通过Javascript对GitHub API进行经过身份验证的只读访问

时间:2013-05-01 09:26:50

标签: authentication cors github-api rate-limiting

我想将我的一些代码嵌入GitHub到我的博客中。到目前为止,我发现的最好方法是使用http://www.jamesward.com/2012/06/15/dynamically-rendering-github-files-in-web-pages(通过一些小修改来修复base64解码),然后对其进行一些自定义语法高亮显示。

但是,如果没有身份验证,这将受到GitHub强制执行的60个请求/小时速率限制。在这种情况下,我不清楚身份验证是如何工作的 - 因为我可能使用的任何身份验证令牌都需要成为我博客上JavaScript的一部分,所以它基本上是公开的......

而且,即使我能以某种方式验证这种用法(通过将我的Origin域名与我的GitHub用户帐户连接起来?),这并不意味着我的博客的所有读者都会依赖此共享率限制,与未经验证的情况相比,每个读者都被计算在他自己的60 /小时限制内?

1 个答案:

答案 0 :(得分:4)

首先回答第二个问题 - 是的,那就是会发生什么。经过身份验证后 - 您在用户之间共享一个配额。未经身份验证时 - 配额在用户之间“分配”(基于IP地址,我猜)。

关于通过JavaScript与GitHub的API进行身份验证的通信 - 是的,您必须将令牌(或用户名和密码)放入脚本并将其公开。你显然不想这样做。您“预期”解决此问题的方式是拥有服务器端。浏览器中执行的JavaScript将与您的服务器通信(没有速率限制,您可以根据需要保护它),服务器将与GitHub的API通信并将结果返回给您的JS脚本。由于没有人能看到您服务器的代码,因此用于身份验证的凭据不公开。