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

Siv*_*mar 11 authentication github token rhodes

我正在使用罗德开发移动应用程序.我想访问github的私人回购.我只有用户名和密码.

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

ibo*_*zhe 6

只有登录名和密码后,您可以使用基本身份验证使用它们.首先,检查此代码是否显示所需repo的json数据.用户名和密码必须用冒号分隔.

curl -u "user:pwd" https://api.github.com/repos/user/repo
Run Code Online (Sandbox Code Playgroud)

如果成功,您应该考虑从代码中执行此请求.

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))
Run Code Online (Sandbox Code Playgroud)


Tek*_*kub 5

您应该使用 oauth 代替:http://developer.github.com/v3/oauth/

  • +1,OAuth 的重点是首先不需要询问用户名和密码。用户不应该信任您的应用程序及其用户名和密码,但他们可以信任 github。这就是 OAuth 的原理:你为他们打开一个 github 连接页面,他们连接,然后 github 给你的应用程序令牌。 (2认同)

Jer*_*oen 5

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

只需使用支持基本 http 身份验证的客户端即可。设置用户名等于令牌,密码等于x-oauth-basic。例如卷曲:

curl -u <token>:x-oauth-basic https://api.github.com/user
Run Code Online (Sandbox Code Playgroud)

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