From f6e64b85b500961e163acfaac3992f0afcbca845 Mon Sep 17 00:00:00 2001 From: fengyuexingzi Date: Wed, 13 Jun 2018 13:45:55 +0800 Subject: [PATCH] token --- auth/linkedin/callback.php | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/auth/linkedin/callback.php b/auth/linkedin/callback.php index 3c9d2c9..1717032 100644 --- a/auth/linkedin/callback.php +++ b/auth/linkedin/callback.php @@ -36,26 +36,29 @@ function getAccessToken($code) $result = json_decode($result, true); if (isset($result['access_token'])) { - + return $result['access_token']; } + + return $result; } // 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 状态(过期,即将过期,正常,无效) // 2.AccessToken 1)无效或过期,回到 step 1 重新请求; 2)即将过期, 调用刷新接口;3)正常使用 $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); curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Authorization: ' . $access_token, + 'Authorization: ' . $data['access_token'], ]); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @@ -69,13 +72,23 @@ function getInfo($url, $access_token) return $info; } +// 防止 CSRF 跨站请求伪造 if ($_GET['state'] != $state) { die('hack'); } unset($_SESSION['state']); -dump($_REQUEST); -dump($_SESSION); +//$access_token = getAccessToken($_GET['code']); + +// 请求 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}");