LinkedIn API OAuth刷新令牌

时间:2017-07-15 15:14:09

标签: php oauth linkedin-api

我正在使用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);
}

生成令牌后,我正在创建授权网址:

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

LinkedIn文档说明了关于刷新令牌的信息:

  

刷新访问令牌非常简单,无需使用   为用户显示授权对话框。换句话说,它是一个   无缝过程,不会影响您的应用程序的用户   经验。只需让您的申请通过授权   流量以获取额外60天的新访问令牌   寿命。

我不清楚这意味着什么。如果我必须再次从获取请求令牌重做,那么是否需要我再次发出http请求并且必须弹出登录屏幕?我该如何避免呢?将赞赏建议。

感谢。

3 个答案:

答案 0 :(得分:2)

发现了。授权网址:

https://www.linkedin.com/oauth/v2/authorization

后跟访问令牌网址:

https://www.linkedin.com/oauth/v2/accessToken

就是我真正需要做的一切(传递正确的参数)。

答案 1 :(得分:0)

还有一个用于在令牌过期后刷新令牌的端点,这是实现令牌的方法:https://developer.linkedin.com/docs/Refresh-Tokens-with-OAuth-2

答案 2 :(得分:-1)

如果您查看文档

Linkedin不提供您需要再次完成工作流程的刷新令牌。

以下是简短说明:

  

要刷新访问令牌,只需再次执行本文档中概述的授权过程即可获取新令牌。在刷新工作流程期间,如果满足以下条件,则会自动跳过流的授权对话框部分,并将用户重定向回您的回调URL,从而获得刷新的访问令牌,实现无缝的幕后用户体验

Refresh your Access Tokens