login.phpでセッションに入れたトークンとtwitter認証後のトークンと(callback.php)一致しません。
なのでErrorとなります。
いい解決方法はありませんか?
ログインできる場合もあります。
調べてみるとlogin.phpのセッションがcallback.phpを開いた時には消えてしまっています。
これはなぜなんでしょうか?
login.php
lang
1<?php 2 3session_start(); 4 5require_once 'common.php'; 6require_once 'twitteroauth/autoload.php'; 7 8use Abraham\TwitterOAuth\TwitterOAuth; 9 10//TwitterOAuth をインスタンス化 11$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET); 12 13//コールバックURLをここでセット 14$request_token = $connection->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK)); 15 16$_SESSION = array(); 17session_destroy(); 18//session更新 19session_regenerate_id(); 20 21//callback.phpで使うのでセッションに入れる 22$_SESSION['oauth_token'] = $request_token['oauth_token']; 23$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; 24 25//Twitter.com 上の認証画面のURLを取得 26$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token'])); 27 28//Twitter.com の認証画面へリダイレクト 29header( 'location: '. $url ); 30?>
callback.php
lang
1<?php 2 3session_start(); 4 5require_once 'common.php'; 6require_once 'twitteroauth/autoload.php'; 7 8use Abraham\TwitterOAuth\TwitterOAuth; 9 10//login.phpでセットしたセッション 11$request_token = []; 12$request_token['oauth_token'] = $_SESSION['oauth_token']; 13$request_token['oauth_token_secret'] = $_SESSION['oauth_token_secret']; 14 15//TwitterからのOAuthトークンとlogin.phpのセッション上のものと一致するかをチェッ>ク 16if ($request_token['oauth_token'] !== $_REQUEST['oauth_token']) { 17 die( 'Error! ' ); 18}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/15 09:36
2015/04/15 10:34
2015/04/16 13:48