11

私はrhodesを使用してモバイルアプリを開発しています。githubのプライベートリポジトリにアクセスしたい。私はユーザー名とパスワードしか持っていません。

指定されたユーザー名とパスワードのトークンを取得する方法。

4

6 に答える 6

7

ログインとパスワードのみを取得したら、基本認証を使用してそれらを使用できます。まず、このコードが目的のリポジトリの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))
于 2011-06-18T00:04:21.300 に答える
5

代わりにoauthを使用する必要があります:http://developer.github.com/v3/oauth/

于 2011-06-17T00:30:10.943 に答える
5

Githubユーザーは、アプリケーション設定でパーソナルアクセストークンを作成できます。このトークンを基本http認証のユーザー名/パスワードの代わりに使用して、APIを呼び出したり、githubWebサイトのプライベートリポジトリにアクセスしたりできます。

基本的なhttp認証をサポートするクライアントを使用するだけです。ユーザー名をトークンに等しく設定し、パスワードをに等しく設定しますx-oauth-basic。たとえば、curlを使用します。

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

https://developer.github.com/v3/auth/も参照してください。

于 2014-01-28T22:56:31.743 に答える
4

/authorizations WithヘッダーにPOSTリクエストを送信します

Content-Type: application/json Accept: application/json Authorization: Basic base64encode(<username>:<password>)

ただし、2要素認証を念頭に置いて くださいhttps://developer.github.com/v3/auth/#working-with-two-factor-authentication

ここで、さらなるリクエストに使用できるトークンを受け取ります

于 2016-09-27T08:23:35.447 に答える
0

help.github.comでこのガイドに従ってください。APIトークンを見つける方法([アカウント設定]> [アカウント管理]の下にあります)と、トークンを使用するようにgitを構成する方法について説明します。

于 2011-06-16T17:49:48.913 に答える
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) {
                  }));
于 2020-08-10T21:01:37.377 に答える