TwitterOAuthでログイン認証をおこなう[OAuth]

2016年3月8日

PHP

TwitterOAuthを利用し、Twitterのアカウントでログインができる認証機能を作成します。

 

TwitterOAuthはTwitterのOAuthをサポートするAPIを利用するためのライブラリで、アプリケーションにTwitterの投稿機能などを実装する時などに利用します。

 

TwitterOAuthはComposerで管理することができますが、今回はTwitterOAuthのリンクから直接ファイルをダウンロードして利用します(twitteroauth-masterファイル)。

 

デモ画面

 

デモはアカウント名などを表示させているだけで、投稿したり、ユーザ情報をデータベースには保存したりすることはございません。

 

 

スポンサーリンク

 

 

今回作成したアプリケーション(デモ画面)は、Twitterのアカウント名などのユーザ情報を取得する部分までを実装しました。

 

プログラミングの前にまずは以下のリンク先ページにてアプリの申請登録をおこない、「Consumer Key(API Key)」と「Consumer Secret(API Secret)」を取得しておきます。またセッティング(Settings)画面の「Callback URL」の部分はのちに説明するcallback.phpを、自分でアップした先のURLを登録しておいて下さい。

 

Twitter Application Management

 

settings

 

 

OAuth自体の詳しい説明はしませんが、今回作成するTwitterOAuthによる認証部分の流れは、以下の様になります。

OAuth

 

認証フロー

 

1. リクエストトークンを取得する。(login.php)
2. リクエストトークンをURLのパラメータに付けて、Twitter認証画面へリダイレクトする。(login.php)
3. ユーザが認証許可すると「Callback URL」で指定したファイル(callback.php)にリダイレクトされる。その際に、oauth_tokenとoauth_verifierがURLのパラメータに付けられている。
4. 3で取得したパラメータ等の値を元にアクセストークンを取得する。(callback.php)
5. アクセストークンを元にユーザ情報を取得する。(callback.php)

 

以上が大まかな流れですが、OAuthを利用するプログラミングにおいて、アクセストークンを取得することがの第一の目的だと考えても良いでしょう。

 

 

ディレクトリ構成

ディレクトリ

 

 

index.php

 

Twitterで認証した場合に、ユーザ情報が表示されます。

 

 

 

login.php

 

このファイルではリクエストトークンを取得し、Twitterの認証画面へリダイレクトさせています。

 

4・5行目

アプリを登録して取得した「Consumer Key」と「Consumer Secret」を設定します。

 

8行目

セッティング(Settings)画面で登録した「Callback URL」を設定します。

 

 

callback.php

 

アクセストークンを取得することが目的のファイルとなります。

 

ユーザが認証すると呼ばれるファイルで、その際にoauth_tokenoauth_verifierがパラメータとして付加されて以下のようなURLでリダイレクトされてきます。12行目においてそれぞれの値が取得できたかどうかを判定しています。

 

以下のようなURLでリダイレクトされてくる。

 

今回は、最終的にユーザのTwitterアカウント名などを表示させているだけですが、実際にはそれらユーザ情報をデータベースに登録していきます。アクセストークン($access_token)は、一ユーザ対して一意的に与えられるので、この値をデータベースなどに格納しておけば、既存のユーザであるのかを判定することができます。つまり、アクセストークンがあればいつでもユーザ情報を取得することができます。

 

 

logout.php

 

 

 

参照ページ


 

https://twitteroauth.com

 

OAuth Send secure authorized requests to the Twitter API

 

ゼロから学ぶOAuth

 

 

スポンサーリンク

 

Copyright © 2017 ウェブの葉 All Rights Reserved.  プライバシーポリシー