Correct way to set Bearer token with CURL

前端 未结 7 859
悲哀的现实
悲哀的现实 2020-11-30 22:12

I get my bearer token from an API end point and set the following:

$authorization = \"Bearer 080042cad6356ad5dc0a720c18b53b8e53d4c274\"

Nex

相关标签:
7条回答
  • 2020-11-30 22:39

    This should works

    $token = "YOUR_BEARER_AUTH_TOKEN";
    //setup the request, you can also use CURLOPT_URL
    $ch = curl_init('API_URL');
    
    // Returns the data/output as a string instead of raw data
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    //Set your auth headers
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
       'Content-Type: application/json',
       'Authorization: Bearer ' . $token
       ));
    
    // get stringified data/output. See CURLOPT_RETURNTRANSFER
    $data = curl_exec($ch);
    
    // get info about the request
    $info = curl_getinfo($ch);
    // close curl resource to free up system resources
    curl_close($ch);
    
    0 讨论(0)
  • 2020-11-30 22:43
    <?php
    $curl = curl_init();
    
    curl_setopt_array($curl, array(
    CURLOPT_URL => "your api goes here",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer eyJ0eciOiJSUzI1NiJ9.eyJMiIsInNjb3BlcyI6W119.K3lW1STQhMdxfAxn00E4WWFA3uN3iIA"
      ),
     ));
    
    $response = curl_exec($curl);
    $data = json_decode($response, true);
    
    echo $data;
    
    ?>
    
    0 讨论(0)
  • 2020-11-30 22:48

    Replace:

    $authorization = "Bearer 080042cad6356ad5dc0a720c18b53b8e53d4c274"
    

    with:

    $authorization = "Authorization: Bearer 080042cad6356ad5dc0a720c18b53b8e53d4c274";
    

    to make it a valid and working Authorization header.

    0 讨论(0)
  • 2020-11-30 22:48

    This is a cURL function that can send or retrieve data. It should work with any PHP app that supports OAuth:

        function jwt_request($token, $post) {
    
           header('Content-Type: application/json'); // Specify the type of data
           $ch = curl_init('https://APPURL.com/api/json.php'); // Initialise cURL
           $post = json_encode($post); // Encode the data array into a JSON string
           $authorization = "Authorization: Bearer ".$token; // Prepare the authorisation token
           curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization )); // Inject the token into the header
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
           curl_setopt($ch, CURLOPT_POST, 1); // Specify the request method as POST
           curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Set the posted fields
           curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // This will follow any redirects
           $result = curl_exec($ch); // Execute the cURL statement
           curl_close($ch); // Close the cURL connection
           return json_decode($result); // Return the received data
    
        }
    

    Use it within one-way or two-way requests:

    $token = "080042cad6356ad5dc0a720c18b53b8e53d4c274"; // Get your token from a cookie or database
    $post = array('some_trigger'=>'...','some_values'=>'...'); // Array of data with a trigger
    $request = jwt_request($token,$post); // Send or retrieve data
    
    0 讨论(0)
  • 2020-11-30 22:50

    Guzzle example:

    use GuzzleHttp\Client;
    use GuzzleHttp\RequestOptions;
    
    $token = 'your_token';
    
    $httpClient = new Client();
    
    $response = $httpClient->get(
        'https://httpbin.org/bearer',
        [
            RequestOptions::HEADERS => [
                'Accept' => 'application/json',
                'Authorization' => 'Bearer ' . $token,
            ]
        ]
    );
    
    print_r($response->getBody()->getContents());
    

    See https://github.com/andriichuk/php-curl-cookbook#bearer-auth

    0 讨论(0)
  • 2020-11-30 22:59

    As at PHP 7.3:

    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BEARER);
    curl_setopt($ch,CURLOPT_XOAUTH2_BEARER,$bearerToken);
    
    0 讨论(0)
提交回复
热议问题