我正在使用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请求并且必须弹出登录屏幕?我该如何避免呢?将赞赏建议。
感谢。
答案 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,从而获得刷新的访问令牌,实现无缝的幕后用户体验