我正在使用 Javascript 对 GitHub 进行基本身份验证。例如,以下 shell 命令从 Github 获取令牌:
curl -i -u uaername:password -k -d "{\"scopes\": [\"repo\"]}" https://api.github.com/authorizations
您如何使用 jQuery 和 AJAX 实现这一目标?
我正在使用 Javascript 对 GitHub 进行基本身份验证。例如,以下 shell 命令从 Github 获取令牌:
curl -i -u uaername:password -k -d "{\"scopes\": [\"repo\"]}" https://api.github.com/authorizations
您如何使用 jQuery 和 AJAX 实现这一目标?
您可以使用该字段在标头中包含基本身份验证详细信息。Authorization
您已经了解了 jQuery 的工作原理。此代码段包含您缺少的部分:
let auth = btoa(username + ":" + password);
jQuery.ajax({
url: ...,
headers: { Authorization: "Basic " + auth }
...
});
注意:btoa
and atob
(发音为B to A和A to B)是内置函数,可以与Base64相互转换。有关更多信息,请参阅MDN 文档。
您是在问是否有办法纯粹从客户端获取 oAuth 令牌?如果是这样,答案是否定的。
但是,你有一些解决方法。
Github.js:https ://github.com/michael/github
Gatekeeper 是一个开源服务器端组件,可以帮助管理 oAuth 令牌:
https://github.com/prose/gatekeeper
您还可以通过简单的登录使用 Firebase 之类的东西,在这种情况下,您不需要管理任何服务器端服务:
https://www.firebase.com/docs/security/simple-login-github.html