2011-03-29 5 views
1

twitter_login트위터의 OAuth - 만료/잘못된 토큰

 $twitteroauth = new TwitterOAuth($this->__twitterKey, $this->__twitterSecret); 

     $request_token = $twitteroauth->getRequestToken(Router::url(array('action' => 'twitter', 'authorize'), true)); 
     $this->Session->write('Twitter', $request_token); 

     if($twitteroauth->http_code==200){ 
      // Let's generate the URL and redirect 
      $url = $twitteroauth->getAuthorizeURL($request_token['oauth_token']); 
      header('Location: '. $url); 
     } else { 
      $this->Session->setFlash('Something went wrong'); 
     } 

twitter_callback

$data['oauth_verifier'] = $_GET['oauth_verifier']; 
    $data['oauth_token'] = $this->Session->read('Twitter.oauth_token'); 
    $data['oauth_token_secret'] = $this->Session->read('Twitter.oauth_token_secret'); 

    $twitteroauth = new TwitterOAuth($this->__twitterKey, $this->__twitterSecret, $data['oauth_token'], $data['oauth_token_secret']); 

    $access_token = $twitteroauth->getAccessToken($data['oauth_verifier']); 

내가

Array 
(
    [ "1.0" encoding="UTF-8"?> 

    /oauth/access_token?oauth_consumer_key=Z2R8QqJYCthif67Qba4vzA 
    [amp;oauth_nonce] => 78576d8eaaabb422fdbd3097e385adcc 
    [amp;oauth_signature] => T23hCeJ5PM2rdYvdZ0mvoHzOfLk= 
    [amp;oauth_signature_method] => HMAC-SHA1 
    [amp;oauth_timestamp] => 1301392825 
    [amp;oauth_token] => JKlpOBGaENFzuXbs4bSzVZCTWnelKX5WeJ1EA1MLfB0 
    [amp;oauth_verifier] => ifPBR18Pw2iTs74GAqyFlLXbvQAoOgG3AjWpPxXV2E 
    [amp;oauth_version] => 1.0 
    Invalid/expired Token 


) 

답변

3

다음

내가 얻을 위해서 var_dump을 수행 할 때 직전 ksorting 시도 $ twitteroauth = 새로운 Twi tterOAuth (...) 대부분의 경우 OAuth 문제는 프로토콜의 요구 사항 때문에 발생합니다.

$data['oauth_token_secret'] = $this->Session->read('Twitter.oauth_token_secret'); 

ksort($data); 

$twitteroauth = new TwitterOAuth($this->__twitterKey, $this->__twitterSecret, 

다음은 매개 변수의 정상화 (정렬) 몇 시간에서의 OAuth oauth_timestamp을 증가 http://oauth.net/core/1.0/#anchor14

관련 문제