TwitterOAuthを利用して、Twitterアカウントでのログインを実装しています。
https://wepicks.net/twitter-restapi-login/
上記の記事を参考に、実装したところ問題なくログインすることができました。
しかし、Webサービスを公開したところ
私以外のユーザーが「error token!!」でログインできない事象が起こっております。
私のTwitterアカウントではログインできますが、
他のユーザーではログインできない原因は何でしょうか。
Twitterアプリケーションは登録しており、
Consumer API keysも正しく入力しています。
Twitterアプリケーションの登録画面にて表示される
「Access token & access token secret」
は、記述する箇所が特になかったのでどこにも入れておりません。
※これはユーザーごとに発行されるので、入れる意味はないという認識です。
プログラミング経験がまだ浅く、
エラー解決できずに困っております。
■気になる点
・自分以外のユーザーがログインできない
config.php
config
1<?php 2//アプリケーションの Consumer Key と Consumer Secret 3$sTwitterConsumerKey = '●●●●●'; //Consumer Key (API Key) 4$sTwitterConsumerSecret = '●●●●●'; //Consumer Secret (API Secret) 5 6//アプリケーションのコールバックURL 7$sTwitterCallBackUri = 'https://●●●●●/twitter-restapi/login/callback.php'; //コールバックURL 8 9//変数初期化 10$objTwitterConection = NULL; //TwitterOAuthクラスのインスタンス化 11$aTwitterRequestToken = array(); //リクエストトークン 12$sTwitterRequestUrl = ''; //認証用URL 13$objTwitterAccessToken = NULL; //アクセストークン 14$objTwUserInfo = NULL; //ユーザー情報 15?>
login.php
login
1<?php 2############################################## 3### 初期設定 4 5//セッションスタート 6session_start(); 7 8//文字セット 9header("Content-type: text/html; charset=utf-8"); 10 11//インクルード 12require_once 'config.php'; 13require_once 'twitteroauth/autoload.php'; 14 15//インポート 16use Abraham\TwitterOAuth\TwitterOAuth; 17 18############################################## 19### twitter oauth request token 取得 20 21//TwitterOAuthクラスをインスタンス化 22$objTwitterConection = new TwitterOAuth($sTwitterConsumerKey, $sTwitterConsumerSecret); 23 24//oauthリクエストトークンの取得 25$aTwitterRequestToken = $objTwitterConection->oauth('oauth/request_token', array('oauth_callback' => $sTwitterCallBackUri)); 26 27//oauthリクエストトークンをセッションに格納 28$_SESSION['twOauthToken'] = $aTwitterRequestToken['oauth_token']; 29$_SESSION['twOauthTokenSecret'] = $aTwitterRequestToken['oauth_token_secret']; 30 31############################################## 32### twitter 認証へ 33 34//Twitter認証URLの作成 35$sTwitterRequestUrl = $objTwitterConection->url('oauth/authenticate', array('oauth_token' => $_SESSION['twOauthToken'])); 36 37//Twitter認証画面へリダイレクト 38header('location: '.$sTwitterRequestUrl); 39?> 40
callback.php
callback
1<?php 2############################################## 3### 初期設定 4 5//セッションスタート 6session_start(); 7 8//文字セット 9header("Content-type: text/html; charset=utf-8"); 10 11//インクルード 12require_once 'config.php'; 13require_once 'twitteroauth/autoload.php'; 14 15//インポート 16use Abraham\TwitterOAuth\TwitterOAuth; 17 18############################################## 19### oauthトークン確認 20if(empty($_SESSION['twOauthToken']) || empty($_SESSION['twOauthTokenSecret']) || empty($_REQUEST['oauth_token']) || empty($_REQUEST['oauth_verifier'])){ 21 echo 'error token!!'; 22 exit; 23} 24if($_SESSION['twOauthToken'] !== $_REQUEST['oauth_token']) { 25 echo 'error token incorrect!!'; 26 exit; 27} 28 29############################################## 30### アクセストークン作成 31 32//取得したoauthトークンでTwitterOAuthクラスをインスタンス化 33$objTwitterConection = new TwitterOAuth 34 ( 35 $sTwitterConsumerKey, 36 $sTwitterConsumerSecret, 37 $_SESSION['twOauthToken'], 38 $_SESSION['twOauthTokenSecret'] 39 ); 40 41//アクセストークンの取得 42$_SESSION['twAccessToken'] = $objTwitterConection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier'])); 43 44//メンバーページへリダイレクト 45header('location: member.php'); 46
member.php
member
1エラーが起きなければ、ここでDBにTwitterの情報を登録する処理をしています。
Twitterログイン認証の使用意図としましては、
Twitterで使われているアイコンやニックネーム、フォロー数などの情報をDBに保存し、Webサービス上で表示するという使い方をしています。
厳しいご意見も真摯に受け止めます。
皆様からのアドバイスをお待ちしております。
何卒、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。