Refresh token

Indien je het Access Token langer nodig hebt dan de vooropgestelde levensduur van één uur

Een Refresh Token aanvragen (via scope offline_access)

De Client kan aangeven dat er gewerkt moet worden met Refresh Tokens door in het initiële Authenticatie Request de scope “offline_access” toe te voegen. Bij de Token Response wordt dan naast een Access Token en een ID-token ook een Refresh Token meegestuurd.

Met een Refresh Token een nieuw Access Token aanvragen

Om een nieuw Access Token aan te vragen, gebruikt de Client het ontvangen Refresh Token en stuurt de vraag rechtstreeks naar het Token Endpoint (dus niet via de browser van de eindgebruiker).

Voorbeeld:

POST /op/v1/token HTTP/1.1
Host: authenticatie.vlaanderen.be
Content-Type: application/x-www-form-urlencoded

  client_id=28358814-5c20-4c13-bbff-db5dd8c4ae93&
  client_secret=CgNjSBQwSolxUcFe7A0U-16j7uccp34-Z5eigKOoCpn5WMHjcb0IkseYA8zhMdYKlpzNJh4Qj4OhjvkVEXq6clvKlutFv5H&
  grant_type=refresh_token&
  refresh_token=Zeksus34ks2jbsQ-jsbz52Qhzbw14nxj98sznjSHzZe&
  scope=openid%20vo%20profile

Het Token Endpoint stuurt dan een nieuw Access Token en een nieuw Refresh Token terug: iedere Refresh Token kan dus slechts één maal gebruikt worden.

Voorbeeld:

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
  "access_token": "FDshzu345jz_qhzjZR98kdjxZ32sjzb24dj-kdz87ek",
  "token_type": "Bearer",
  "refresh_token": "DZjdxjsh-sjxAZFD2582shx4-sjxhz26fsX87djzAw4",
  "expires_in": 3600
}

Het Refresh Token is dus slechts één maal bruikbaar en in het antwoord ontvangt de Client een nieuw Refresh Token.

Indien de duurtijd waarin je Refresh Tokens mag aanvragen verlopen is, dan zal het Token Endpoint antwoorden met volgende foutmelding:

HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache

{
  "error":"invalid_request"
}