Mga karaniwang error sa pag-authenticate

Huling na-update: 3 buwan ang nakalipas

Kung nahihirapan kang mag-authenticate gamit ang Cathopic API, ito ang mga pinakakaraniwang error at kung paano ayusin ang mga ito.

401 Unauthorized

Ang pinakakaraniwang error sa pag-authenticate:

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

Mga karaniwang sanhi:

  • Nawawala x-api-key header

  • Hindi wasto o nag-expire na API key

  • Typo sa API key

  • May whitespace bago/pagkatapos ng key

  • Hindi na-load ang key mula sa environment variable

Paano ayusin:

  1. I-verify na eksakto ang pangalan ng header x-api-key (lowercase)

  2. Kopyahin muli ang iyong API key mula sa Settings → API

  3. Tiyaking na-load ang mga environment variable: console.log(process.env.CATHOPIC_API_KEY)

  4. Tanggalin ang whitespace: apiKey.trim()

  5. I-verify na aktibo ang key (hindi tinanggal o dinisabled)

Maling pangalan ng header

Kinakailangan ng API ang x-api-key, hindi ang ibang karaniwang pangalan ng header:

// ❌ MALI
Authorization: Bearer sk_live_abc...
API-Key: sk_live_abc...
apikey: sk_live_abc...
// ✅ TAMA
x-api-key: sk_live_abc...

Error sa unauthorized token

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

Sanhi: Nadisable o natanggal ang iyong API key.

Paano ayusin:

  • Tingnan kung aktibo pa rin ang key sa Settings → API

  • I-reactivate ang key kung nadisable ito

  • Gumawa ng bagong key kung natanggal ang luma

Hindi na-load ang environment variable

Hindi mahanap ng iyong code ang API key:

// Nagbabalik ng undefined
const apiKey = process.env.CATHOPIC_API_KEY;
console.log(apiKey); // undefined

Paano ayusin:

Node.js:

// Siguraduhing na-load ang .env
require('dotenv').config();
const apiKey = process.env.CATHOPIC_API_KEY;
if (!apiKey) {
  throw new Error('CATHOPIC_API_KEY not set');
}

Python:

import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.environ.get('CATHOPIC_API_KEY')
if not api_key:
    raise ValueError('CATHOPIC_API_KEY not set')

Error sa paglantad sa client-side

Sinusubukang gamitin ang API key sa browser JavaScript:

// ❌ Mabibigo ito (hindi gumagana ang mga key sa browsers)
fetch('https://api.cathopic.com/resources', {
  headers: { 'x-api-key': 'sk_live_abc...' }
});

Paano ayusin: Gumawa ng server-side endpoint na nagsisilbing proxy sa mga request papunta sa Cathopic API. Tingnan ang "Paano ko mapo-protekta ang aking mga kredensyal?" para sa mga halimbawa.

Mga error sa CORS

Kung makakita ka ng mga error sa CORS sa browser console:

Na-block ang access sa fetch dahil sa patakaran ng CORS...

Sanhi: Sinusubukan mong tawagin nang direkta ang API mula sa client-side JavaScript.

Paano ayusin: Ang Cathopic API ay server-side lamang. Kailangan mong i-proxy ang mga request sa pamamagitan ng sarili mong backend.

Pagsusuri ng pag-authenticate

Mabilis na test para beripikahin ang setup mo:

curl -v -X POST https://api.cathopic.com/resources \
  -H "x-api-key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"test","page":1,"page_size":1}'
# Maghanap ng HTTP 200 response
# Kung 401, maingat na suriin ang key

Checklist sa pag-debug

Kung hindi pa rin gumagana ang pag-authenticate:

  • ☐ Ang pangalan ng header ay x-api-key (case sensitive)

  • ☐ Ang API key ay ang buong key (nagsisimula sa sk_live_ o katulad nito)

  • ☐ Walang Bearer prefix o mga panipi sa paligid ng key

  • ☐ Naka-set at na-load ang environment variable

  • ☐ Ang request ay ipinapadala mula sa server-side, hindi mula sa browser

  • ☐ Aktibo ang key sa Settings → API

  • ☐ Idinagdag ang paraan ng pagbabayad at valid

Kung magpapatuloy ang problema, makipag-ugnayan sa developer support gamit ang:

  • Ang mensahe ng error

  • Huling 4 na digit ng iyong API key

  • Wikang programming at framework

  • Halimbawang code (nang hindi inilalantad ang buong key mo)

Nakatulong ba ang artikulong ito?