2017-07-15 158 views
7

我正在使用LinkedIn API從那裏獲取更新並顯示在網站上。在使用OAuth時,我將令牌存儲在一個文件中,然後再從那裏拉動它以防止登錄彈出窗口。但是,一旦我的令牌到期,我不清楚它將如何刷新。以下是如何,我從文件讀取令牌 -LinkedIn API OAuth刷新令牌

 $config = json_decode(file_get_contents(".service.dat")); 
     if(isset($config->key) && isset($config->secret)) { 
      $this->access_token = new OAuthConsumer($config->key, $config->secret); 
     } 

爲了驗證我有以下獲得請求令牌 -

function getRequestToken() 
{ 
    $consumer = $this->consumer; 
    $request = OAuthRequest::from_consumer_and_token($consumer, NULL, "GET", $this->request_token_path); 
    $request->set_parameter("oauth_callback", $this->oauth_callback); 
    $request->sign_request($this->signature_method, $consumer, NULL); 
    $headers = Array(); 
    $url = $request->to_url(); 
    $response = $this->httpRequest($url, $headers, "GET"); 
    parse_str($response, $response_params); 
    $this->request_token = new OAuthConsumer($response_params['oauth_token'], $response_params['oauth_token_secret'], 1); 
} 

生成令牌後,我generting授權網址:

function generateAuthorizeUrl() 
{ 
    $consumer = $this->consumer; 
    $request_token = $this->request_token; 
    return $this->authorize_path . "?oauth_token=" . $request_token->key; 
} 

LinkedIn文檔聲明以下關於刷新令牌:

刷新訪問令牌非常簡單,可以在沒有 授權對話框出現的情況下發生。換句話說,這是一個無縫的過程,不會影響您的應用程序的用戶 體驗。只需讓您的應用程序通過授權 流程即可獲取一個新的訪問令牌,並額外提供60天的使用期限。

我不清楚這意味着什麼。如果我必須重新從獲取請求令牌一路重做,那麼是否需要我再次發出http請求並且不得不彈出登錄屏幕?我如何避免它?將欣賞建議。

謝謝。

回答