我正在使用Abraham Williams twitter api登录用户。在第一步中,我将临时oauth_token和oauth_token _secret存储在会话中。在登录过程之后将用户重定向到我的页面之后,先前存储的会话数据将丢失。我该如何解决这个问题?
function oauth()
{
//Build TwitterOAuth object with client credentials
$connection = new TwitterOAuth($this->consumer_key, $this->consumer_secret);
//Get temporary credentials
$request_token = $connection->getRequestToken($this->callback);
//Save temporary credentials to session
$session_data = array(
'oauth_token' => $request_token['oauth_token'],
'oauth_token_secret'=> $request_token['oauth_token_secret'],
);
$this->session->set_userdata($session_data);
//If last connection failed don't display authorization link.
switch ($connection->http_code)
{
case 200:
$url = $connection->getAuthorizeURL($request_token['oauth_token'], TRUE);
header('Location: ' . $url);
break;
default:
echo 'Could not connect to Twitter. Refresh the page or try again later.';
}
}
function callback()//callback after user signs in with twitter
{
$connection = new TwitterOAuth($this->consumer_key,
$this->consumer_secret,
$this->session->userdata("oauth_token"),
$this->session->userdata("oauth_token_secret"));
$access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);
$this->session->set_userdata('access_token', $access_token);
//Remove no longer needed request tokens
$this->session->unset_userdata('oauth_token');
$this->session->unset_userdata('oauth_token_secret');
//If HTTP response is 200 continue otherwise send to connect page to retry
if (200 == $connection->http_code)
{
$this->session->set_userdata('twitter_log_in', TRUE);
redirect('/main/', 'refresh');
}
}
答案 0 :(得分:0)
当然,您在会话部分验证了配置文件,但是: