更新时间:4月 21, 2026 / 创建时间:4月 20, 2026
本页内容
https://admin.jeawin.com/oauth/token
POST
| 参数 | 说明 |
| client_id | 必填,后台应用管理中的应用id |
| client_secret | 必填,后台应用管理中的应用密钥 |
| grant_type | 必填,选项:authorization_code或者client_credentials或者refresh_token |
| redirect_uri | 当grant_type=authorization_code时,需要传回调地址 |
| code | 当grant_type=authorization_code时,需要传oauth/authorize回调地址接收到的code |
| refresh_token | 当grant_type=refresh_token时,需要传旧的refresh_token值 |
| 参数 | 说明 |
| error | 错误值 |
| error_description | 错误说明 |
| access_token | 访问数据接口的access_token |
| expires_in | access_token的过期时间,单位秒 |
| token_type | bearer |
| scope | |
| refresh_token | 当access_token过期时,用于获取新的access_token |
// echo 'callback';
// 检查state和code
$state = $this->input->get('state');
$test_oauth_state = $this->session->userdata('test_oauth_state');
if($state !== $test_oauth_state){
$this->output->set_output('state请求参数错误');
return;
}
$code = $this->input->get('code');
if(!isset($code)){
$this->output->set_output('code参数错误');
return;
}
// 获取access_token
try {
$client = new GuzzleHttp\Client(['verify' => FALSE]);
$url = $this->oauth_server . 'oauth/token';
// var_dump($url);
$response = $client->request('POST', $url, array(
'form_params' => array(
'client_id' => $this->client_id,
'client_secret' => $this->client_secret,
'grant_type' => 'authorization_code',
'redirect_uri' => $this->redirect_url,
'code' => $code
)
));
// log_message("error", $code);
// var_dump($response->getStatusCode());
$body = $response->getBody()->getContents();
$obj = json_decode($body);
if(!is_null($obj)){
$access_token = $obj->access_token;
$refresh_token = $obj->refresh_token;
// 保存access_token
$this->session->set_userdata('test_access_token', $access_token);
$this->session->set_userdata('test_refresh_token', $refresh_token);
// 通过access_token获取api数据
$response = $client->request('GET', $this->oauth_server . 'oauth/api', [
'headers' => [
'Authorization' => 'Bearer ' . $access_token
]
]);
// $composed = new Psr7\AppendStream([$response->getBody()]);
$composed = $response->getBody()->getContents();
var_dump($composed);
//
}
}catch(Exception $e){
echo $e->getMessage();
}
// 获取access_token
try {
$client = new GuzzleHttp\Client(['verify' => FALSE]);
$url = $this->oauth_server . 'oauth/token';
// var_dump($url);
$response = $client->request('POST', $url, array(
'form_params' => array(
'client_id' => $this->client_id,
'client_secret' => $this->client_secret,
'grant_type' => 'client_credentials',
)
));
// log_message("error", $code);
// var_dump($response->getStatusCode());
$body = $response->getBody()->getContents();
$obj = json_decode($body);
if(!is_null($obj)){
$access_token = $obj->access_token;
// 保存access_token
$this->session->set_userdata('test_access_token', $access_token);
// 通过access_token获取api数据
$response = $client->request('GET', $this->oauth_server . 'oauth/api', [
'headers' => [
'Authorization' => 'Bearer ' . $access_token
]
]);
// $composed = new Psr7\AppendStream([$response->getBody()]);
$composed = $response->getBody()->getContents();
var_dump($composed);
//
}
}catch(Exception $e){
echo $e->getMessage();
}
$refresh_token = $this->session->userdata('test_refresh_token');
try{
$client = new GuzzleHttp\Client(['verify' => FALSE]);
$response = $client->request('POST', $this->oauth_server . 'oauth/token', [
'form_params' => [
'client_id' => $this->client_id,
'client_secret' => $this->client_secret,
'grant_type' => 'refresh_token',
'refresh_token' => $refresh_token
]
]);
$body = $response->getBody()->getContents();
var_dump($body);
$obj = json_decode($body);
if(!is_null($obj)){
$access_token = $obj->access_token;
$refresh_token = $obj->refresh_token;
// 重新保存access_token
$this->session->set_userdata('test_access_token', $access_token);
$this->session->set_userdata('test_refresh_token', $refresh_token);
}
}catch(Exception $e){
var_dump($e->getMessage());
}
