KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

OAuth2 接続方法


こんにちは、松野です。

先月はOAuth1の認証方法について書きました
今月はOAuth2の認証方法を書いて行きたいと思います。

OAuth2はOauth1に比べるととても使いやすくなっており、ライブラリも充実しているイメージなので
1はわからないけど2ならわかる。 という方も少なくないのではないかなと思います。

早速、OAuth2の認証をしてみましょう。

おおまかな流れは下記を見てください。
matsuno01

1.ユーザがアプリケーションにアクセスする
2.アプリケーションがサーバに認可コードを送信する
3.サーバーからユーザにログイン画面を返す
4.ユーザがログインする
5.サーバが認証コードをアプリケーションに返却する
6.アプリケーションが返却コードを使用してサーバにアクセストークンを要求する
7.サーバがアプリケーションにアクセストークンを返す
8.このアクセストークンを使って、ユーザ情報のやりとりをする
9.結果をユーザに返す

と、こうなってます。

言葉だとわかりづらいので、実際にやってみましょう。

まず、認可コード要求ですが
https://console.developers.google.com/project/
上記URLにアクセスして、プロジェクトを作成してください。

プロジェクト作成後、APIと認証画面の認証情報で、新しいキーを作成してください。
ここで作成される
クライアントID
クライアントシークレット
リダイレクトURL
を使いますので、メモしておいてください。

プログラムで
https://accounts.google.com/o/oauth2/auth
に情報をPOSTします。
POSTする情報
key:client_id value:上記でメモしたクライアントID
key:redirect_uri value:上記でメモしたリダイレクトURL
key:response_type value:code
key:scope value:openid email profile
※上記scopeは取得する情報によって変わってきますので、別途調査してください。
基本的にはemailとprofileで行けるかと思います。
key:access_type value:offline
key:approval_prompt value:auto

この情報をPOSTすると、googleのログイン画面が出力されます。
ログイン後、redirect_uriで指定したURLに、codeパラメータ付きでリダイレクトされます。

あとはこのcodeを使いアクセストークンを取得し、そのアクセストークンを使用することで
scopeで指定した情報(openid, email, profile)を取得できるようになってます。

とりあえず前半はここまで、来月はアクセストークン取得までやりたいと思います。

【関連記事】
ハニーポットについて (1)サーバーを立てる
ハニーポットについて (2)アクセスログ有効活用方法
TopCoderをやろう!
TopCoderをやろう 等差数列の問題
今月はTopcoderじゃなくてCodeIQ!
俺googleのページランクのアルゴリズム知ってるんだぜ!
サメの種類と生態
プログラマならできて当たり前、fizzbuzz問題
OAuth1 認証 アクセストークン発行まで