Context: I'm trying to login a user using twitter api. So far I tried to call twitter api and authenticate the user. The $url
prompts a twitter sign in page and asks user for permission. (that bit works at least) then it doesn't redirect to the homepage.php
.
My index.php:
require_once 'login/twitteroauth-0.6.2/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
define(CONSUMER_KEY, 'SDH7YHUbdMUtt39G5cIEpSp9s');
define(CONSUMER_SECRET, 'd0sKDopzytHlDxUDvudwepxBHDSoaeKgVL2tzLVqxcng5se2Hi');
define(OAUTH_CALLBACK, 'http://127.0.0.1/example_project/callback.php');
if (!isset($_SESSION['access_token'])) {
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$request_token = $connection->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
echo $url;
} else {
$access_token = $_SESSION['access_token'];
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);
$user = $connection->get("account/verify_credentials");
}
My callback.php:
session_start();
require_once 'login/twitteroauth-0.6.2/autoload.php';
use Abraham\TwitterOAuth\TwitterOAuth;
if(isset($_REQUEST['oauth_verifier']) && $_REQUEST['oauth_token'] && $oauth_token===$oauth_verifier){
$request_token = [];
$request_token['oauth_token'] = $_SESSION['oauth_token'];
$request_token['oauth_token_secret'] = $_SESSION['oauth_token_secret'];
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $request_token['oauth_token'], $request_token['oauth_token_secret']);
$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier']));
$_SESSION['access_token'] = $access_token;
// redirect user back to index page
header('Location: ./');
echo 'callback.php: everything is good';
} else{
echo "callback.php: something has gone wrong";
}