Przejdź do treści

Uwierzytelnianie OAuth2 Client Credentials

CloudPrint używa serwerowego OAuth2 Client Credentials. Sekret pozostaje wyłącznie w chronionym magazynie po stronie serwera; nie może trafić do przeglądarki, aplikacji mobilnej, skryptu agenta ani publicznego repozytorium.

Utwórz aplikację i wybierz uprawnienia

Utwórz osobną aplikację API dla każdego systemu. Druk PDF i RAW wymaga printers:read, documents:write, print_jobs:write, print_jobs:read; dodaj agents:read tylko dla /api/v1/agents. Sekret jest wyświetlany raz.

Pobierz i przechowuj token

bash
curl -sS https://public-api.cloudprint.me/oauth/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'client_id=YOUR_CLIENT_ID' \
  --data-urlencode 'client_secret=YOUR_CLIENT_SECRET' \
  --data-urlencode 'scope=printers:read documents:write print_jobs:write print_jobs:read'
json
{
  "token_type": "Bearer",
  "expires_in": 900,
  "access_token": "eyJ..."
}

Przechowuj token niemal przez cały 900-sekundowy okres ważności. Nie pobieraj nowego przed każdym wydrukiem.

Sprawdź konto i uprawnienia

bash
curl -sS https://public-api.cloudprint.me/api/v1/me \
  -H "Authorization: Bearer $ACCESS_TOKEN"
json
{
  "account_id": "44444444-4444-4444-8444-444444444444",
  "account_name": "Acme Print Ops",
  "client_app_id": "33333333-3333-4333-8333-333333333333",
  "client_app_name": "Warehouse integration",
  "scopes": [
    "printers:read",
    "documents:write",
    "print_jobs:write",
    "print_jobs:read"
  ]
}

Ten test pokazuje konto, aplikację i uprawnienia tokenu, zapobiegając drukowi na niewłaściwym koncie.

Obsłuż błędy

400 invalid_scope oznacza nieznane lub nieprzyznane uprawnienie. 401 invalid_client podczas pobierania tokenu oznacza błędne dane dostępowe. Po 401 z API odśwież token raz i ponów żądanie raz. 403 oznacza brak uprawnienia w ważnym tokenie.

Bezpieczna wymiana danych dostępowych

Wydaj zamiennik, wdróż go przez magazyn sekretów i sprawdź /me przed unieważnieniem starego klienta. Nie zapisuj sekretu ani pełnego tokenu w dziennikach; zachowuj X-Request-Id.

Następne kroki

Przewodniki dotyczące integracji CloudPrint, podłączania lokalnego agenta i obsługi procesów drukowania.