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
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'{
"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
curl -sS https://public-api.cloudprint.me/api/v1/me \
-H "Authorization: Bearer $ACCESS_TOKEN"{
"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.