如何使用用户名和密码获取GitHub令牌

11

我正在使用Rhodes开发移动应用程序,希望能够访问GitHub的私有存储库。 我只有用户名和密码。

如何获取给定用户名和密码的令牌。

6个回答

7

如果您只有登录名和密码,您可以使用基本身份验证(basic auth)进行身份验证。首先,请检查此代码是否向您显示所需存储库的json数据。用户名和密码必须用冒号分隔。

curl -u "user:pwd" https://api.github.com/repos/user/repo

如果成功,您应该考虑从代码中执行此请求。
import urllib2
import json
from StringIO import StringIO
import base64

username = "user@example.com"
password = "naked_password"

req = urllib2.Request("https://api.github.com/repos/user/repo")
req.add_header("Authorization", "Basic " + base64.urlsafe_b64encode("%s:%s" % (username, password)))
req.add_header("Content-Type", "application/json")
req.add_header("Accept", "application/json")
res = urllib2.urlopen(req)

data = res.read()
repository = json.load(StringIO(data))

5

1
我有一种感觉,他们已经更改了认证页面,它们不再列出使用Autherization:基本Base64(用户名:密码)头部的内容。 - WORMSS
2
+1,OAuth 的整个目的就是不必在第一时间请求用户名和密码。用户不应该信任您的应用程序使用他们的用户名和密码,但他们可以信任 GitHub。这就是 OAuth 的原则:您为他们打开一个 GitHub 连接页面,他们连接并且 GitHub 给您的应用程序令牌。 - Nicolas Marshall

5

Github用户可以在应用设置中创建个人访问令牌。您可以使用此令牌作为基本http身份验证的用户名/密码的替代方式,以调用API或访问Github网站上的私有存储库。

只需使用支持基本http身份验证的客户端即可。将用户名设置为该令牌,并将密码设置为x-oauth-basic。例如,使用curl:

curl -u <token>:x-oauth-basic https://api.github.com/user

另请参阅https://developer.github.com/v3/auth/

4

0

请按照 help.github.com 上的 this 指南操作。它描述了如何找到您的 API 令牌(在“帐户设置”>“帐户管理员”下),并配置 git 以使用该令牌。


0

这里是使用JavaScript进行GitHub基本身份验证的代码

let username = "*******";
    let password = "******";
    let auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
    
    var options = {
        host: 'api.github.com',
        path: '/search/repositories?q=google%20maps%20api',
        method: 'GET',
        headers: {
                'user-agent': 'node.js',
                "Authorization": auth
                 }
                 };
    var request = https.request(options, function (res) {
                  }));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接