Xác thực

Tìm hiểu cách xác thực yêu cầu API.

Xác thực

Tất cả yêu cầu đến Traceline API phải bao gồm API key trong header X-API-Key. API key được tạo từ bảng điều khiển.

X-API-Key: trl_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4

Định dạng khóa

API key tuân theo định dạng nhất quán để dễ nhận dạng:

  • trl_live_ Tất cả khóa bắt đầu bằng trl_live_.
  • Phần thân 32 ký tự thập lục phân được tạo bằng bộ sinh số ngẫu nhiên an toàn.
  • Ví dụ đầy đủ trl_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4

Lưu trữ & bảo mật khóa

API key được băm bằng SHA-256 trên máy chủ. Khóa văn bản gốc chỉ hiển thị một lần khi tạo.

Thực hành bảo mật tốt nhất

  • Lưu khóa trong biến môi trường, không hardcode.
  • Thêm file .env vào .gitignore.
  • Xoay vòng khóa định kỳ và thu hồi khóa không sử dụng.
  • Sử dụng khóa riêng cho phát triển và sản xuất.

Ví dụ yêu cầu

Tất cả yêu cầu đến Traceline API phải bao gồm API key trong header X-API-Key. API key được tạo từ bảng điều khiển.

cURL

curl -X POST https://api.trace-line.site/v1/palm/analyze \
  -H "X-API-Key: trl_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"image": "<base64-encoded-image>"}'

Python

import os
import requests
import base64

api_key = os.environ["TRACELINE_API_KEY"]

with open("palm.jpg", "rb") as f:
    image_b64 = base64.b64encode(f.read()).decode()

response = requests.post(
    "https://api.trace-line.site/v1/palm/analyze",
    headers={
        "X-API-Key": api_key,
        "Content-Type": "application/json",
    },
    json={"image": image_b64},
)

print(response.json())

JavaScript

import { readFileSync } from "fs";

const apiKey = process.env.TRACELINE_API_KEY;
const image = readFileSync("palm.jpg").toString("base64");

const res = await fetch(
  "https://api.trace-line.site/v1/palm/analyze",
  {
    method: "POST",
    headers: {
      "X-API-Key": apiKey,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ image }),
  }
);

const data = await res.json();
console.log(data);