私はrhodesを使用してモバイルアプリを開発しています。githubのプライベートリポジトリにアクセスしたい。私はユーザー名とパスワードしか持っていません。
指定されたユーザー名とパスワードのトークンを取得する方法。
私はrhodesを使用してモバイルアプリを開発しています。githubのプライベートリポジトリにアクセスしたい。私はユーザー名とパスワードしか持っていません。
指定されたユーザー名とパスワードのトークンを取得する方法。
ログインとパスワードのみを取得したら、基本認証を使用してそれらを使用できます。まず、このコードが目的のリポジトリの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))
代わりにoauthを使用する必要があります:http://developer.github.com/v3/oauth/
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/も参照してください。
/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
ここで、さらなるリクエストに使用できるトークンを受け取ります
help.github.comでこのガイドに従ってください。APIトークンを見つける方法([アカウント設定]> [アカウント管理]の下にあります)と、トークンを使用するようにgitを構成する方法について説明します。
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) {
}));