Chuyển đến nội dung chính
s.id Logo
Nền tảng nhà phát triển

Xác thực

Hai cách xác thực với API s.id, API key cho máy chủ tới máy chủ, OAuth 2.0 để hoạt động thay mặt người dùng.

Chọn theo ranh giới tin cậy

Bạn nên sử dụng phương thức nào?

API Keys

Phù hợp nhất cho backend riêng, tác vụ theo lịch và quy trình tự động riêng tư khi thông tin xác thực không bao giờ được gửi đến trình duyệt hoặc ứng dụng di động.

OAuth 2.0

Phù hợp nhất cho ứng dụng bên thứ ba cần sự đồng ý của người dùng và quyền truy cập chi tiết, có thể thu hồi vào tài khoản s.id.

API Keys

Truy cập máy chủ đến máy chủ

API key xác thực các tích hợp máy chủ tới máy chủ. Tạo một cái tại Dashboard → Developer → API Keys, chọn phạm vi của bạn và truyền nó dưới dạng Bearer token.

Header xác thực
Authorization: Bearer sk_live_...
Ví dụ yêu cầu
curl https://api.s.id/v2/links \
  -H "Authorization: Bearer sk_live_..."

Danh sách kiểm tra bảo mật

  • Key bắt đầu bằng sk_live_ và chỉ hiển thị một lần khi tạo.
  • Chỉ yêu cầu phạm vi tối thiểu mà tích hợp của bạn cần.
  • Thu hồi key ngay lập tức nếu bị xâm phạm, tạo cái mới.
  • Không bao giờ để lộ API key phía client (trình duyệt, ứng dụng mobile).
links:read
links:write
links:archive
links:analytics
qr:read
qr:write
user:read
microsites:read
microsites:write
microsites:delete

OAuth 2.0

Luồng ủy quyền

Chuyển người dùng đến s.id để đồng ý, xác minh state của callback, rồi đổi mã dùng một lần lấy access token và refresh token xoay vòng.

Trước khi chuyển hướng người dùng

  • Tạo giá trị state không thể đoán trước, lưu trong phiên người dùng và xác minh khớp chính xác khi callback để ngăn CSRF.
  • Sử dụng redirect_uri khớp chính xác với giá trị đã đăng ký cho ứng dụng OAuth của bạn.

Ứng dụng công khai

Bắt buộc PKCE, không dùng client secret

Dành cho SPA, ứng dụng di động và CLI. Tạo code_verifier ngẫu nhiên, gửi challenge S256 khi ủy quyền, rồi gửi verifier gốc khi đổi token.

Chuyển hướng người dùng
https://api.s.id/oauth/authorize?
  response_type=code&
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
  scope=links%3Aread%20links%3Awrite&
  state=RANDOM_CSRF_VALUE&
  code_challenge=BASE64URL_SHA256_VERIFIER&
  code_challenge_method=S256
Đổi code lấy token
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "code=AUTHORIZATION_CODE" \
  -d "redirect_uri=https://app.example.com/callback" \
  -d "code_verifier=ORIGINAL_RANDOM_VERIFIER"

Ứng dụng bảo mật

Client secret trên backend đáng tin cậy

Dành cho ứng dụng render phía máy chủ hoặc backend có thể giữ bí mật client_secret. PKCE vẫn là tùy chọn và được khuyến nghị như một lớp bảo vệ bổ sung.

Chuyển hướng người dùng
https://api.s.id/oauth/authorize?
  response_type=code&
  client_id=YOUR_CLIENT_ID&
  redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
  scope=links%3Aread%20links%3Awrite&
  state=RANDOM_CSRF_VALUE
Đổi code lấy token
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "code=AUTHORIZATION_CODE" \
  -d "redirect_uri=https://app.example.com/callback"

Token truy cập

Hết hạn sau 1 giờ

Refresh token

Hết hạn sau 30 ngày

Mã ủy quyền

Chỉ dùng một lần; hết hạn sau 10 phút

Xoay vòng refresh token
curl -X POST https://api.s.id/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "refresh_token=CURRENT_REFRESH_TOKEN"
Thu hồi token
curl -X POST https://api.s.id/oauth/revoke \
  -H "Content-Type: application/json" \
  -d '{"token":"TOKEN_TO_REVOKE"}'

Khám phá và thao tác token

Siêu dữ liệu máy chủ ủy quyền

https://api.s.id/.well-known/oauth-authorization-server

Khám phá URL endpoint, phạm vi được hỗ trợ và phương thức PKCE qua siêu dữ liệu RFC 8414.

Kiểm tra token

POST https://api.s.id/oauth/introspect

Máy chủ tài nguyên bảo mật có thể kiểm tra token còn hoạt động và xem các phạm vi của token.

Thu hồi token

POST https://api.s.id/oauth/revoke

Thu hồi access token hoặc refresh token khi người dùng ngắt kết nối tích hợp của bạn.

Người dùng được ủy quyền

GET https://api.s.id/oauth/userinfo

Đọc hồ sơ liên kết với token truy cập OAuth mang phạm vi user:read.

Sẵn sàng bắt đầu xây dựng?

Tạo API key trong vài phút. Đã có gói miễn phí, không cần thẻ tín dụng.

Lấy API key của bạn