|
|
|
@ -36,26 +36,29 @@ function getAccessToken($code)
|
|
|
|
|
|
|
|
|
|
|
|
$result = json_decode($result, true);
|
|
|
|
$result = json_decode($result, true);
|
|
|
|
if (isset($result['access_token'])) {
|
|
|
|
if (isset($result['access_token'])) {
|
|
|
|
|
|
|
|
return $result['access_token'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// step 2: get user info by access token
|
|
|
|
// step 2: get user info by access token
|
|
|
|
function getInfo($url, $access_token)
|
|
|
|
function getInfo($access_token)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
$url = "https://api.linkedin.com/v1/people/~?format=json";
|
|
|
|
|
|
|
|
|
|
|
|
// 1. 判断 AccessToken 状态(过期,即将过期,正常,无效)
|
|
|
|
// 1. 判断 AccessToken 状态(过期,即将过期,正常,无效)
|
|
|
|
// 2.AccessToken 1)无效或过期,回到 step 1 重新请求; 2)即将过期, 调用刷新接口;3)正常使用
|
|
|
|
// 2.AccessToken 1)无效或过期,回到 step 1 重新请求; 2)即将过期, 调用刷新接口;3)正常使用
|
|
|
|
|
|
|
|
|
|
|
|
$data = [
|
|
|
|
$data = [
|
|
|
|
'access_token' => "AQXMRNlQv7rqemb6KmBKMWurtL7I6KV381MUxXQIeW6YszIueblWCVatVrVACzO-L2wWI7VSgto_hvH_ET1E7aVUjAalRXvcEu4qsWx57YS1yVANEbpez3dQUupIRrqGOGnokRHR64nQyVFqTPaS9e2hPvO_miOtlBD3mzQjxLC1O2xxJrG4BIWohlNmMyxgvVXM2OZCurPG5rFyfoitB-rmI6JyvW4tUYRFoJLe5XzjfpUWoe0OUzWxo8y67xrY4tIBAILKGnMM2KDfHKyVJx9JDoVC7jCPHaWC9mSEWSSlunC5Q_xJuJb98MPwDUlrtXkvpJSC9yzbsODR_nnBr5coHEcIlA",
|
|
|
|
'access_token' => 'AQUhXDdWEWNdYAn6zHrahzIWATYDW4OptdpCPmAcPoSW9mIIdUwhpQj8XLTIIP1PyDBUs5hyUb86it8GQNS7kcsW3o4QggkAiswA2c3X-nO8byjQBaIiRoQuyGpboEN672NRWgB6B7PvtX4Gujz6BWf0sUPvIITKRdF_PoasfDrits5TJGsnJZZFxm8JzDamQ8Xt4tzal1zMqundj1I5OxyGWhdl9uGuly9M2NfsZZ6_qxT0b7OnaWUU6dq5uKVSqsR_QY8HlDgBtw-HGvODNHMmPhtigjrdcoMaztobvNj7ReTMWN-TNhWLEb4QZaoWCG2X7b9bXnUYi1Cbp_VZoOaj_jMRug',
|
|
|
|
|
|
|
|
'expires_in' => '1534052395',
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
$info_url = "https://api.linkedin.com/v1/people/~?format=json";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ch = curl_init($url);
|
|
|
|
$ch = curl_init($url);
|
|
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
|
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
|
|
|
'Authorization: ' . $access_token,
|
|
|
|
'Authorization: ' . $data['access_token'],
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
|
|
|
|
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
|
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
@ -69,13 +72,23 @@ function getInfo($url, $access_token)
|
|
|
|
return $info;
|
|
|
|
return $info;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 防止 CSRF 跨站请求伪造
|
|
|
|
if ($_GET['state'] != $state) {
|
|
|
|
if ($_GET['state'] != $state) {
|
|
|
|
die('hack');
|
|
|
|
die('hack');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
unset($_SESSION['state']);
|
|
|
|
unset($_SESSION['state']);
|
|
|
|
|
|
|
|
|
|
|
|
dump($_REQUEST);
|
|
|
|
//$access_token = getAccessToken($_GET['code']);
|
|
|
|
dump($_SESSION);
|
|
|
|
|
|
|
|
|
|
|
|
// 请求 access_token 失败
|
|
|
|
|
|
|
|
//if (is_array($access_token)) {
|
|
|
|
|
|
|
|
// dump($access_token);
|
|
|
|
|
|
|
|
// die;
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 此处应保存至数据库或 Redis
|
|
|
|
|
|
|
|
|
|
|
|
$access_token = getAccessToken($_GET['code']);
|
|
|
|
$info = getInfo();
|
|
|
|
|
|
|
|
$info = json_encode($info);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
header("Location: https://fengyuexingzi.top/auth/linkedin?access_token=${info}");
|
|
|
|
|