Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 客户端GitHub身份验证_Javascript_Github Api - Fatal编程技术网

Javascript 客户端GitHub身份验证

Javascript 客户端GitHub身份验证,javascript,github-api,Javascript,Github Api,我正在使用Javascript对GitHub进行基本身份验证。例如,以下shell命令从Github获取令牌: curl -i -u uaername:password -k -d "{\"scopes\": [\"repo\"]}" https://api.github.com/authorizations 使用jQuery和AJAX如何实现这一点?您是否在问是否有一种方法可以纯粹从客户端获取oAuth令牌?如果是,答案是否定的 但是,你有一些解决办法 Github.js: Gate

我正在使用Javascript对GitHub进行基本身份验证。例如,以下shell命令从Github获取令牌:

    curl -i -u uaername:password -k -d "{\"scopes\": [\"repo\"]}" https://api.github.com/authorizations

使用jQuery和AJAX如何实现这一点?

您是否在问是否有一种方法可以纯粹从客户端获取oAuth令牌?如果是,答案是否定的

但是,你有一些解决办法

Github.js:

Gatekeeper是一个开源服务器端组件,可以帮助oAuth令牌管理:

您还可以使用Firebase之类的简单登录,在这种情况下,您不需要管理任何服务器端服务:

使用jQuery在HTTP头中包含基本身份验证数据 您可以使用
Authorization
字段在标题中包含基本身份验证详细信息。您已经了解了jQuery的工作原理。此代码段包含您缺少的部分:

    let auth = btoa(username + ":" + password);

    jQuery.ajax({
        url: ...,
        headers: { Authorization: "Basic " + auth }
        ...
    });

注:
btoa
atob
(读作B到A和A到B)是内置函数,可转换为和从。有关更多信息,请参阅。

他特别询问了basic auth,您完全可以通过浏览器执行此操作。有Octokit JS库可以做到这一点。是的,这是正确的,他询问了基本身份验证,但我认为您不能使用基本身份验证来检索oAuth令牌(我认为他在这里需要,不是吗?),即使使用这些库。我相信您必须将回调映射到实际的服务器(而不仅仅是web浏览器),这意味着纯客户端JS无法工作。您可以只在请求头中包含用户名和密码。如果您使用的是个人访问令牌,那么您永远不需要oAuth.usiver snippet,在客户端JavaScript中这样做安全吗?