Метод withBasicAuth
Метод withBasicAuth применяется к экземпляру класса Http
и позволяет добавить заголовки авторизации для базовой HTTP-аутентификации.
Первым параметром передаётся имя пользователя, вторым - пароль.
Метод возвращает тот же экземпляр клиента, дополненный заголовками
авторизации.
Синтаксис
<?php
Http::withBasicAuth($username, $password)->get($url);
?>
Пример
Давайте выполним GET-запрос к защищённому API с использованием базовой аутентификации:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesHttp;
use IlluminateHttpRequest;
class UserController extends Controller
{
public function fetchData()
{
$res = Http::withBasicAuth('admin', 'secret123')
->get('https://api.example.com/protected-data');
if ($res->successful()) {
echo "Data fetched successfully";
} else {
echo "Authentication failed";
}
}
}
?>
Результат выполнения кода:
"Data fetched successfully"
Пример
Давайте отправим POST-запрос с базовой аутентификацией и передадим данные:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesHttp;
use IlluminateHttpRequest;
class PostController extends Controller
{
public function createPost()
{
$res = Http::withBasicAuth('user123', 'pass456')
->post('https://api.example.com/posts', [
'title' => 'My new post',
'content' => 'This is the content of my post'
]);
if ($res->successful()) {
$data = $res->json();
echo "Post created with ID: " . $data['id'];
} else {
echo "Failed to create post";
}
}
}
?>
Результат выполнения кода:
"Post created with ID: 15"
Пример
Давайте выполним запрос с базовой аутентификацией и обработаем ошибку авторизации:
<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesHttp;
use IlluminateHttpRequest;
class ApiController extends Controller
{
public function getSecureData()
{
$res = Http::withBasicAuth('invalid_user', 'wrong_pass')
->timeout(10)
->get('https://api.example.com/secure-endpoint');
if ($res->status() === 401) {
echo "Unauthorized access - invalid credentials";
} elseif ($res->failed()) {
echo "Request failed with status: " . $res->status();
} else {
$data = $res->json();
echo "Data received: " . json_encode($data);
}
}
}
?>
Результат выполнения кода:
"Unauthorized access - invalid credentials"
Смотрите также
-
метод
withToken,
который добавляет Bearer токен для аутентификации -
метод
withHeaders,
который добавляет произвольные заголовки к запросу -
метод
get,
который выполняет GET-запрос к указанному URL -
метод
post,
который выполняет POST-запрос с передачей данных