LoginSignup
1
0

【備忘録】GitHubのOAuth認証を使って取得したアクセストークンでGitHub APIを叩く

Posted at

はじめに

この記事は GitHubOAuth認証 を用いて GitHub REST API で使える アクセストークン を取得する方法の備忘録です。

Client ID と Client secrets を準備する

OAuth認証 を利用するために必要な Client ID
アクセストークン発行 に必要な Client secrets を取得します。

Application name には 任意のアプリ名
Homepage URL には ホームページのURL
Authorization callback URL には 認証ボタンをクリックした後に飛ばしたいURL
それぞれ入力します。

Application nameHomepage URL はなんでも良いと思います。

OAuth_secret_red.png

Generate a new client secret をクリックして Client secret生成 します。
Client secretClient ID をそれぞれ メモ しておきます。

OAuth認証を使って code を取得する

アクセストークンを取得するまでの大まかな流れは

1.GitHub認証ページGitHub認証 のボタンを クリック する。
2.設定したAuthorization callback URL にくっついた code を取得する。
3.codeClient IDClient secrets と共に POST する。
4.POST からの レスポンスアクセストークン が詰まっている。

この流れのうち 1~2code取得 までを 実装 していきます。

index.html
<body>
    <a href="https://github.com/login/oauth/authorize?client_id=fc9dd0d1d25d185df5e8">GitHub認証ページへ遷移</a>
</body>

このように
https://github.com/login/oauth/authorize?client_id=${Client ID}
という リンク にユーザをアクセスさせます。
${Client ID}メモしたClient ID を使います。

OAuth_authBtn_red.png

ユーザは このようなページにアクセスします。
これは GitHub認証ページ なので GitHub認証ボタンクリック します。

OAuth_url_red.png

GitHub認証ボタンクリック すると
設定した Authorization callback URLcode がくっついたURLに リダイレクト されます。

ここまでが code取得 の流れです。

取得したcodeを使ってアクセストークンを取得する

アクセストークン
codeClient IDClient secrets
https://github.com/login/oauth/access_tokenPOST することで取得出来ます。

実装例を Thunder Client で示しますが、POST送信 できればなんでも良いです。

リクエスト側
OAuth_post_red.png

レスポンス側
OAuth_response_red.png

このようにして アクセストークン を取得します。

取得したアクセストークンを使ってGitHub APIを叩く

こちらも実装例を Thunder Client で示します。

リクエスト側
OAuth_GitHubRESTAPI_red.png

レスポンス側
image.png

このようにして GitHub API を叩けます。

叩いたAPIの詳細はこちらです。

認証時に scope を指定することで叩けるAPIが 増えたり 追加で データが返されたり します。

指定する scope については こちらをご覧ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0