获取access token

更新时间:4月 21, 2026 / 创建时间:4月 20, 2026

本页内容

接口地址

https://admin.jeawin.com/oauth/token

http请求方式

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_inaccess_token的过期时间,单位秒
token_typebearer
scope 
refresh_token当access_token过期时,用于获取新的access_token

使用示例

authorization_code

        // 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();
        }

client_credentials

        // 获取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

        $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());
        }

 

如果您需要与我们取得联系,以下是我们的联系方式

如果您需要与我们取得联系,以下是我们的联系方式
联系电话
联系邮箱
微信联系
杰赢网络
QQ
215168