---
title: "โทเคน JWT | Tajo"
description: "JSON Web Token สำหรับการยืนยันตัวตน API อย่างปลอดภัย"
url: https://tajo.io/th/docs/authentication/jwt-tokens/
markdown: https://tajo.io/th/docs/authentication/jwt-tokens.md
lang: th-TH
author: "Set Noa"
author_url: https://tajo.io/th/set-noa/
robots: noindex
---

ขอสิทธิ์ใช้งานล่วงหน้า

กรอกชื่อและที่อยู่อีเมลที่ทำงานของคุณ เราจะส่งลิงก์เพื่อยืนยันคำขอเข้าใช้งาน Tajo ทางอีเมล

# โทเคน JWT

[Set Noa](https://tajo.io/th/set-noa/)

JSON Web Token (JWT) เป็นวิธีที่ปลอดภัยในการส่งข้อมูลระหว่างสองฝ่ายในรูปแบบออบเจ็กต์ JSON

## โครงสร้างของ JWT

JWT ประกอบด้วยสามส่วนที่คั่นด้วยจุด

```
header.payload.signature
```

### ส่วนหัว

```json
{
  "alg": "HS256",
  "typ": "JWT"
}
```

### เพย์โหลด

```json
{
  "sub": "1234567890",
  "email": "user@example.com",
  "iat": 1516239022,
  "exp": 1516242622
}
```

### ลายเซ็น

ลายเซ็นถูกสร้างขึ้นด้วยวิธีต่อไปนี้

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

## การสร้างโทเคน JWT

### ตัวอย่างด้วย Node.js

```javascript
const jwt = require('jsonwebtoken');

const payload = {
  userId: '12345',
  email: 'user@example.com',
  scope: ['email', 'contacts']
};

const token = jwt.sign(payload, process.env.JWT_SECRET, {
  expiresIn: '1h',
  issuer: 'your-app',
  audience: 'brevo-api'
});
```

### ตัวอย่างด้วย Python

```python
import jwt
import datetime

payload = {
    'user_id': '12345',
    'email': 'user@example.com',
    'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1),
    'iat': datetime.datetime.utcnow()
}

token = jwt.encode(payload, 'your-secret-key', algorithm='HS256')
```

## การใช้ JWT กับ Brevo API

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

## การตรวจสอบความถูกต้องของโทเคน

```javascript
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 };
  }
};
```

## แนวทางปฏิบัติที่ดี

- ใช้ secret ที่คาดเดายากและสุ่มอย่างแท้จริง
- กำหนดเวลาหมดอายุให้เหมาะสม
- ตรวจสอบความถูกต้องของโทเคนในทุกคำขอ
- ใช้ HTTPS เท่านั้น
- จัดเก็บ secret อย่างปลอดภัย
- วางระบบต่ออายุโทเคน
