Paano ko i-authenticate ang mga request?

Huling na-update: 3 buwan ang nakalipas

Lahat ng request sa Cathopic API ay dapat i-authenticate gamit ang iyong API key. Narito kung paano maayos na i-authenticate ang iyong mga API call.

Paraan ng pag-a-authenticate

Gumagamit ang Cathopic API ng API key authentication sa pamamagitan ng HTTP headers:

  • Pangalan ng header: x-api-key

  • Halaga ng header: Ang iyong buong API key

  • Kinakailangan para sa: Lahat ng API endpoints

  • Case sensitive: Dapat eksaktong tumugma ang mga pangalan at halaga ng header

Halimbawa ng basic authentication

cURL:

curl -X POST https://api.cathopic.com/resources \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "Birheng Maria",
    "page": 1,
    "page_size": 20,
    "order": "popular"
  }'

JavaScript (fetch):

const response = await fetch('https://api.cathopic.com/resources', {
  method: 'POST',
  headers: {
    'x-api-key': process.env.CATHOPIC_API_KEY,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    query: 'Birheng Maria',
    page: 1,
    page_size: 20,
    order: 'popular'
  })
});
const data = await response.json();
console.log(data);

JavaScript (axios):

const axios = require('axios');
const response = await axios.post(
  'https://api.cathopic.com/resources',
  {
    query: 'Birheng Maria',
    page: 1,
    page_size: 20,
    order: 'popular'
  },
  {
    headers: {
      'x-api-key': process.env.CATHOPIC_API_KEY
    }
  }
);
console.log(response.data);

Python (requests):

import os
import requests
api_key = os.environ.get('CATHOPIC_API_KEY')
response = requests.post(
    'https://api.cathopic.com/resources',
    headers={
        'x-api-key': api_key,
        'Content-Type': 'application/json'
    },
    json={
        'query': 'Birheng Maria',
        'page': 1,
        'page_size': 20,
        'order': 'popular'
    }
)
data = response.json()
print(data)

PHP (cURL):

 'Birheng Maria',
    'page' => 1,
    'page_size' => 20,
    'order' => 'popular'
]));
$response = curl_exec($ch);
$data = json_decode($response, true);
curl_close($ch);
print_r($data);
?>

Mga error sa pag-a-authenticate

Kung mabigo ang pag-a-authenticate, makakatanggap ka ng error response:

Nawawalang API key:

HTTP 401 Unauthorized
{
  "message": "Unauthorized"
}

Hindi valid na API key:

HTTP 401 Unauthorized
{
  "message": "Unauthorized"
}

Hindi aktibong API key:

HTTP 401 Unauthorized
{
  "error": "Unauthorized token"
}

Mga mahahalagang paalala

Seguridad:

  • Huwag kailanman i-hardcode ang mga API key: Gumamit ng environment variables o secure na configuration

  • Para sa server-side lamang: Huwag kailanman isama ang mga API key sa client-side JavaScript

  • HTTPS lamang ang gamitin: Ang mga API key na ipinapadala sa HTTP ay madaling maapektuhan

  • Regular na palitan: Palitan ang mga key paminsan-minsan para sa seguridad

Pangasiwaan ang error:

  • Suriin ang status codes: Laging i-verify ang HTTP response status

  • I-log ang mga pagkabigo sa pag-a-authenticate: Subaybayan ang mga nabigong pagtatangka para sa security monitoring

  • Ipatupad ang retry logic: Gamit ang exponential backoff para sa mga pansamantalang error

  • I-validate bago magpadala: Siguraduhing tama ang pagkakarga ng API key

Pagsusuri ng pag-a-authenticate

Mabilis na test para beripikahin na gumagana ang iyong API key:

curl -X POST https://api.cathopic.com/resources \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "test", "page": 1, "page_size": 1}'

Inaasahang response (tagumpay):

{
  "total": 1234,
  "page": 1,
  "page_size": 1,
  "results": [ ... ]
}

Mga karaniwang pagkakamali

  • Maling pangalan ng header: Dapat ay x-api-key, hindi api-key o Authorization

  • Maling format ng halaga: Gamitin ang buong key na gaya nito, nang walang "Bearer" prefix

  • May kasunod na whitespace: I-trim ang mga halaga ng API key bago gamitin

  • Hindi na-load ang key: Tingnan kung tama ang pagkaset ng environment variable

Para sa pag-troubleshoot ng mga isyu sa pag-a-authenticate, tingnan "Mga karaniwang error sa pag-a-authenticate" sa seksyong ito.

Nakatulong ba ang artikulong ito?