Skip to main content

Autentizace

SDK se k GoPay přihlašuje pomocí OAuth2 client_credentials.
Token endpoint nevolejte ručně při běžném použití API — SDK ukládá access tokeny do cache a obnovuje je před expirací.

Jak to funguje

Při prvním volání API:
  1. SDK odešle POST /oauth2/token
  2. Token uloží do cache s časem expirace
  3. Token znovu používá, dokud se neblíží konec platnosti
  4. Před expirací obnoví (okno podle tokenRefreshMarginSeconds)

Požadavek na token endpoint

SDK odesílá:
  • grant_type=client_credentials
  • nakonfigurovaný scope (výchozí payment-all)
  • Authorization: Basic <base64(clientId:clientSecret)>

Cache tokenů

Výchozí je InMemoryTokenCache.
Sdílená cache (Redis, memcached, …) se hodí při více instancích serveru, aby se zbytečně nenásobily OAuth požadavky.
Vlastní cache pro sdílení tokenů mezi procesy:

Souběh

Správce tokenů slučuje paralelní požadavky na token:
  • pokud více volání potřebuje token najednou, proběhne jen jedno HTTP volání na token
  • všichni čekají na stejný probíhající promise
Tím se sníží zátěž token endpointu.

Doporučená nastavení

  • ponechte výchozí tokenRefreshMarginSeconds (30), pokud infrastruktura nevyžaduje větší rezervu
  • přihlašovací údaje držte v proměnných prostředí nebo secret manageru
  • při rotaci credential koordinujte nasazení napříč uzly