Заявете ранен достъп

Посочете името си и имейл адрес или телефонен номер. Ще Ви изпратим информация за достъп до Tajo.

JWT токени

JSON Web Tokens (JWT) осигуряват сигурен начин за предаване на информация между страни под формата на JSON обект.

Структура на JWT

Един JWT се състои от три части, разделени с точки:

header.payload.signature
{
"alg": "HS256",
"typ": "JWT"
}

Payload

{
"sub": "1234567890",
"email": "[email protected]",
"iat": 1516239022,
"exp": 1516242622
}

Signature

Подписът се създава по следния начин:

HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)

Създаване на JWT токени

Пример с Node.js

const jwt = require('jsonwebtoken');
const payload = {
userId: '12345',
scope: ['email', 'contacts']
};
const token = jwt.sign(payload, process.env.JWT_SECRET, {
expiresIn: '1h',
issuer: 'your-app',
audience: 'brevo-api'
});

Пример с Python

import jwt
import datetime
payload = {
'user_id': '12345',
'email': '[email protected]',
'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1),
'iat': datetime.datetime.utcnow()
}
token = jwt.encode(payload, 'your-secret-key', algorithm='HS256')

Използване на JWT с Brevo API

Terminal window
curl -X GET "https://api.brevo.com/v3/account" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-H "Accept: application/json"

Валидиране на токени

const validateToken = (token) => {
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
return { valid: true, payload: decoded };
} catch (error) {
return { valid: false, error: error.message };
}
};

Добри практики

  • Използвайте силни, случайно генерирани тайни ключове
  • Задавайте подходящи срокове на валидност
  • Валидирайте токените при всяка заявка
  • Използвайте само HTTPS
  • Съхранявайте тайните ключове сигурно
  • Реализирайте логика за подновяване на токени

Заявете ранен достъп

Посочете името си и имейл адрес или телефонен номер. Ще Ви изпратим информация за достъп до Tajo.

автоматично разпознаване
AI асистент

Здравейте! Попитайте ме за документацията.