Работа с JWT в различных среда

  • Михаил
  • 8 мин. на прочтение
  • 21
  • 17 Dec 2025
  • 17 Dec 2025

Вот подробная статья о том, как отправлять HTTP-запросы с JWT-токеном в различных средах: cURL, React, .NET Core (C#), Python и других. Статья структурирована по пунктам с описанием и пояснениями кода.


1. Что такое JWT и зачем он нужен?

JWT (JSON Web Token) — это стандарт для создания токенов доступа, которые передаются между клиентом и сервером. Он используется для аутентификации и авторизации. JWT состоит из трёх частей:

  • Header (заголовок, содержит тип токена и алгоритм шифрования),
  • Payload (полезная нагрузка, содержит данные пользователя),
  • Signature (подпись, подтверждает подлинность токена).

2. Как добавить JWT в HTTP-запросы?

JWT обычно передаётся в заголовке Authorization в формате:

Authorization: Bearer <ваш_jwt_токен>


3. Примеры запросов с JWT в разных средах


3.1. cURL

cURL — утилита командной строки для отправки HTTP-запросов.

GET-запрос

curl -X GET \
 https://api.example.com/data \
 -H "Authorization: Bearer ваш_jwt_токен"

POST-запрос

curl -X POST \
 https://api.example.com/data \
 -H "Authorization: Bearer ваш_jwt_токен" \
 -H "Content-Type: application/json" \
 -d '{"key": "value"}'

PUT-запрос

curl -X PUT \
 https://api.example.com/data/1 \
 -H "Authorization: Bearer ваш_jwt_токен" \
 -H "Content-Type: application/json" \
 -d '{"key": "new_value"}'

DELETE-запрос

curl -X DELETE \
 https://api.example.com/data/1 \
 -H "Authorization: Bearer ваш_jwt_токен"

3.2. React (с использованием fetch)

В React для отправки запросов с JWT удобно использовать fetch или библиотеку axios.

GET-запрос

const token = "ваш_jwt_токен";
fetch("https://api.example.com/data", {
 method: "GET",
 headers: {
   "Authorization": `Bearer ${token}`,
   "Content-Type": "application/json",
 },
})
 .then((response) => response.json())
 .then((data) => console.log(data))
 .catch((error) => console.error("Ошибка:", error));

POST-запрос

const token = "ваш_jwt_токен";
const postData = { key: "value" };
fetch("https://api.example.com/data", {
 method: "POST",
 headers: {
   "Authorization": `Bearer ${token}`,
   "Content-Type": "application/json",
 },
 body: JSON.stringify(postData),
})
 .then((response) => response.json())
 .then((data) => console.log(data))
 .catch((error) => console.error("Ошибка:", error));

PUT-запрос

const token = "ваш_jwt_токен";
const putData = { key: "new_value" };
fetch("https://api.example.com/data/1", {
 method: "PUT",
 headers: {
   "Authorization": `Bearer ${token}`,
   "Content-Type": "application/json",
 },
 body: JSON.stringify(putData),
})
 .then((response) => response.json())
 .then((data) => console.log(data))
 .catch((error) => console.error("Ошибка:", error));

DELETE-запрос

const token = "ваш_jwt_токен";

fetch("https://api.example.com/data/1", {
 method: "DELETE",
 headers: {
   "Authorization": `Bearer ${token}`,
   "Content-Type": "application/json",
 },
})
 .then((response) => response.json())
 .then((data) => console.log(data))
 .catch((error) => console.error("Ошибка:", error));

3.3. .NET Core (C#)

В .NET Core для отправки HTTP-запросов с JWT используется класс HttpClient.

GET-запрос

class Program
{
   static async Task Main()
   {
       var token = "ваш_jwt_токен";
       var client = new HttpClient();
       client.DefaultRequestHeaders.Authorization =
           new AuthenticationHeaderValue("Bearer", token);
       var response = await client.GetAsync("https://api.example.com/data");
       if (response.IsSuccessStatusCode)
       {
           var content = await response.Content.ReadAsStringAsync();
           Console.WriteLine(content);
       }
   }
}

POST-запрос

class Program
{
   static async Task Main()
   {
       var token = "ваш_jwt_токен";
       var client = new HttpClient();
       client.DefaultRequestHeaders.Authorization =
           new AuthenticationHeaderValue("Bearer", token);
       var postData = new { key = "value" };
       var content = new StringContent(
           JsonSerializer.Serialize(postData),
           Encoding.UTF8,
           "application/json");
       var response = await client.PostAsync("https://api.example.com/data", content);
       if (response.IsSuccessStatusCode)
       {
           var responseContent = await response.Content.ReadAsStringAsync();
           Console.WriteLine(responseContent);
       }
   }
}

PUT-запрос

var response = await client.PutAsync("https://api.example.com/data/1", content);

DELETE-запрос

var response = await client.DeleteAsync("https://api.example.com/data/1");

3.4. Python (с использованием requests)

В Python для работы с HTTP-запросами удобно использовать библиотеку requests.

GET-запрос

import requests
token = "ваш_jwt_токен"
headers = {"Authorization": f"Bearer {token}"}
response = requests.get("https://api.example.com/data", headers=headers)
print(response.json())

POST-запрос

import requests
import json
token = "ваш_jwt_токен"
headers = {
   "Authorization": f"Bearer {token}",
   "Content-Type": "application/json"
}
data = {"key": "value"}
response = requests.post(
   "https://api.example.com/data",
   headers=headers,
   data=json.dumps(data)
)
print(response.json())

PUT-запрос

response = requests.put(
   "https://api.example.com/data/1",
   headers=headers,
   data=json.dumps({"key": "new_value"})
)

DELETE-запрос

response = requests.delete("https://api.example.com/data/1", headers=headers)

4. Заключение

  • JWT передаётся в заголовке Authorization в формате Bearer <токен>.
  • В cURL используйте флаг -H для добавления заголовка.
  • В React используйте fetch или axios.
  • В .NET Core используйте HttpClient.
  • В Python используйте библиотеку requests.