Bỏ qua, đến nội dung

Câu hỏi thường gặp (FAQ) — API Keys

Sử dụng

Quên API key, làm sao lấy lại?

Không thể lấy lại. Token chỉ hiển thị một lần duy nhất khi tạo và được hash trước khi lưu vào database. Quy trình xử lý:

  1. Tạo API key mới với cùng cấu hình (name, role, thời hạn)
  2. Cập nhật token mới trong ứng dụng/hệ thống bên ngoài
  3. Xoá key cũ để vô hiệu hoá token cũ

Key hết hạn thì sao?

Mọi request sử dụng token đã hết hạn sẽ nhận response 401 Unauthorized. Để khắc phục:

  • Tạo API key mới với thời hạn mới
  • Cập nhật token trong hệ thống sử dụng
  • Xoá key cũ (tuỳ chọn — key hết hạn cũng đã vô hiệu)

Có thể giới hạn key theo IP không?

Hiện tại plugin API Keys không hỗ trợ giới hạn theo IP. Để tăng bảo mật:

  • Kết hợp với plugin-ip-restriction nếu cần giới hạn IP cho toàn bộ API
  • Sử dụng reverse proxy (nginx, Cloudflare) để lọc IP trước khi đến server
  • Tạo role riêng với quyền tối thiểu cho API key

Có thể gia hạn key không?

Không hỗ trợ gia hạn. Tạo key mới với thời hạn mới, cập nhật ứng dụng, rồi xoá key cũ.

API key khác gì session token?

Tiêu chíAPI KeySession Token
Mục đíchTích hợp hệ thống bên ngoàiĐăng nhập qua giao diện
Thời hạnCấu hình khi tạo (30d, 1y, never)Hết hạn theo session
QuyềnTheo role được gán khi tạo keyTheo role của user đăng nhập
Tạo bởiAdmin, qua SettingsTự động khi đăng nhập

Bảo mật

Key bị lộ, làm sao xử lý?

Thực hiện ngay lập tức theo thứ tự:

  1. Xoá key trong Settings → API Keys → nút Delete
  2. Xoá key = vô hiệu hoá token JWT — mọi request dùng token cũ sẽ bị từ chối ngay
  3. Tạo key mới và cập nhật trong hệ thống sử dụng
  4. Kiểm tra audit log (nếu có plugin-audit-logs) để xem key đã bị sử dụng bất thường chưa
  5. Đánh giá thiệt hại: Xem role của key — nếu là admin role, kiểm tra kỹ mọi thay đổi

Nên đặt thời hạn bao lâu?

Trường hợpThời hạn khuyến nghịLý do
Integration lâu dài (CI/CD, webhook)6–12 thángXoay key 1–2 lần/năm
Testing / development7–30 ngàyHạn chế rủi ro
Script chạy một lần1–3 ngàyXoá ngay sau khi xong
Không nên dùngneverRủi ro nếu key bị lộ

API key có an toàn hơn password không?

API key tiện lợi hơn cho automation nhưng không an toàn hơn password/OAuth2 vì:

  • Key là bearer token — ai có key đều có quyền
  • Không có 2FA, IP restriction, hoặc revoke tự động
  • Khuyến nghị: Luôn gán role với quyền tối thiểu, đặt thời hạn, và xoay key định kỳ

Lưu key ở đâu an toàn?

Nơi lưuMức an toànGhi chú
Secret Manager (Vault, AWS Secrets)CaoKhuyến nghị cho production
CI/CD secrets (GitHub, GitLab)Trung bìnhCho pipeline automation
Biến môi trường serverTrung bìnhKhông commit vào git
File .env trên máy localThấpChỉ cho development
Chat, email, SlackRất thấpKhông bao giờ làm điều này