Naar inhoud springen

Gids voor developers

OAuth 2.0 Client Credentials

Authenticeer integraties aan de serverkant zonder gebruikerssessie, met de standaard Client Credentials-flow (RFC 6749 §4.4).

Overzicht

De Client Credentials-grant is bedoeld voor server-naar-server-integraties waarbij geen gebruiker aanwezig is: CI-pipelines, cronjobs, backenddiensten en integraties met SaaS-platforms. Je applicatie ruilt een combinatie van client_id en client_secret in voor een kortlevend Bearer-access token.

Token-endpoint

POST https://pollslive.com/api/oauth/token

Geldigheid token

3600 seconden (1 uur)

Vereist abonnement

Elk betaald abonnement (Pro en hoger)

OAuth of API-sleutels: wanneer gebruik je wat?

ScenarioAanbevolen inloggegevens
Persoonlijke automatisering / scriptsAPI-sleutel
Intern serverproces, één werkruimteAPI-sleutel
SaaS-product dat PollsLive integreert voor meerdere klantenOAuth Client Credentials per werkruimte van een klant
Zero-trust-rotatie zonder downtimeOAuth (tokens verlopen automatisch) of rotatie van API-sleutels
Toegang voor derden, beperkt tot bepaalde scopesOAuth met scopes

1. Maak een OAuth-client aan

Ga naar Studio → Ontwikkelaars-API → OAuth 2.0-clients en klik op OAuth-client aanmaken. Geef de client een duidelijke naam en beperk eventueel de scopes.

Sla je clientSecret meteen op. Net als een API-sleutel wordt het precies één keer getoond en nooit als platte tekst opgeslagen.

2. Vraag een access token op

Stuur een POST-request naar het token-endpoint, met application/x-www-form-urlencoded (de RFC-standaard) of application/json (voor het gemak):

Request: form-urlencoded (RFC-standaard)
curl -X POST https://pollslive.com/api/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=plv_cid_…&client_secret=plv_cs_…&scope=polls:read polls:write"
Request: JSON (voor het gemak)
curl -X POST https://pollslive.com/api/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "client_credentials",
    "client_id": "plv_cid_…",
    "client_secret": "plv_cs_…",
    "scope": "polls:read polls:write"
  }'
Response
{
  "access_token": "plv_oauth_…",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "polls:read polls:write"
}

Foutmeldingen volgen het formaat van RFC 6749 §5.2. { "error": "invalid_client", "error_description": "…" }

3. Gebruik het token

Stuur het access_token bij elke API-request mee als Bearer-token, precies zoals een API-sleutel:

Geauthenticeerde request
curl https://pollslive.com/api/v1/polls \
  -H "Authorization: Bearer plv_oauth_…"

Je applicatie moet het token cachen en pas een nieuw token opvragen als expires_in bijna verstreken is (bijvoorbeeld vernieuwen zodra er minder dan 5 minuten over zijn).

Geldigheid en vernieuwen van tokens

Tokens zijn 1 uur geldig (expires_in: 3600). Er is geen refresh token: vraag gewoon met je clientgegevens een nieuw token op als het huidige verloopt. Omdat dit een flow aan de serverkant is, verlaat het client secret nooit je backend.

Patroon voor tokenrotatie (Node.js)
let token = null;
let expiresAt = 0;

async function getToken() {
  if (token && Date.now() < expiresAt - 5 * 60 * 1000) return token;

  const res = await fetch("https://pollslive.com/api/oauth/token", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      grant_type: "client_credentials",
      client_id: process.env.OAUTH_CLIENT_ID,
      client_secret: process.env.OAUTH_CLIENT_SECRET,
    }),
  });
  const data = await res.json();
  token = data.access_token;
  expiresAt = Date.now() + data.expires_in * 1000;
  return token;
}

Scopes

Met scopes beperk je wat een OAuth-client mag doen. Geef je bij het aanmaken van de client geen scopes op, dan krijgt hij volledige toegang tot de werkruimte (gelijk aan een API-sleutel).

Bekijk de scope-referentie voor de volledige lijst.

Een client intrekken

Als je een client intrekt, worden alle tokens die ervoor zijn uitgegeven direct ongeldig. Lopende requests met zo'n token mislukken met 401 invalid_oauth_token.

Ga naar Studio → Ontwikkelaars-API → OAuth 2.0-clients en klik op Intrekken.

Nog vragen?

Ons team helpt je graag verder.

Neem contact op

We gebruiken essentiële cookies om je ingelogd te houden en dubbele stemmen te voorkomen. Met je toestemming gebruiken we ook Cloudflare Web Analytics om paginaweergaven te tellen en de Whop Pixel om te zien welke bezoeken tot een aankoop leiden. Cookie Policy