Hansen mattias
Hansen mattias

Reputation: 23

HttpClient Component Authentication

I need to to be authentificate when create a HTTP request, in the documentation

        $httpClient = HttpClient::create([
            'auth_basic' => ['[email protected]', '45@8888'],
        ]);

$httpClient = HttpClient::create([
    // HTTP Basic authentication with only the username and not a password
    'auth_basic' => ['the-username'],

    // HTTP Basic authentication with a username and a password
    'auth_basic' => ['the-username', 'the-password'],

    // HTTP Bearer authentication (also called token authentication)
    'auth_bearer' => 'the-bearer-token',
]);

So when write

$response = $httpClient->request('GET', 'https://...', [
    // use a different HTTP Basic authentication only for this request
    'auth_basic' => ['the-username', 'the-password'],

    // ...
]);

An exception is throwed

Symfony\Component\HttpClient\Exception\ClientException: HTTP/1.1 400 Bad Request returned for "http://site.test/login_check".

Is the exeption throwed because i haven't post the field user[_token] ? If yes how to generate it and add to the request ? If anyone has already logged in with this component please give me the code :)

Upvotes: 2

Views: 5107

Answers (1)

Nirina-aj
Nirina-aj

Reputation: 202

I used that and it works Try, for Authentication and Request:

$httpClient = HttpClient::create();
    $uri = 'http://test:xxxx/login_check';
    $response = $httpClient->request('POST', $uri, [
        'headers' => [
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'username' => '[email protected]',
            'password' => 'jhon.doe'
        ],
    ]);
     $statusCode = $response->getStatusCode();

     if($statusCode  == 200) {
        $content = $response->getContent();
        dd($content);
      }
    
    
// JWT Request Http 
$uri = 'http://test.xxx/api/xxxx';
    $response = $httpClient->request('GET', $uri, [
        'headers' => [
            'Content-Type' => 'application/json',
            'Authorization' => 'Bearer '.TOKEN
        ]
    ]);

    $statusCode = $response->getStatusCode();
    $content = $response->getContent();
    dd($content);
   //the easiest
    $httpClient->request('POST', $url, [
            'auth_bearer' => $jwt,
            'body' => $data,
        ])->getContent();

Upvotes: 1

Related Questions