
.gif?width=1200&height=718&name=Screen_Recording_2020-12-16_at_10.22.07%20(1).gif)
POST naar https://services.cabmandata.com/authentication/connect/token met de volgende form-data of x-www-form-urlencoded in de body:
grant_type: passwordusername: <gebruikersnaam>password: <wachtwoord>client_id: ExternalClientHTTP Request:
POST /authentication/connect/token HTTP/1.1 Host: services.cabmandata.com Accept: application/json
Content-Type: application/x-www-form-urlencoded grant_type=password&username=<gebruikersnaam>&password=<wachtwoord>&client_id=ExternalClient
cURL:
curl --location --request POST 'https://services.cabmandata.com/authentication/connect/token' \ --header 'Accept: application/json' \
--header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password'
\ --data-urlencode 'username=<gebruikersnaam>' \ --data-urlencode 'password=<wachtwoord>' \ --data-urlencode 'client_id=ExternalClient'
JavaScript (jQuery):
var settings = { "url": "https://services.cabmandata.com/authentication/connect/token", "method": "POST", "timeout": 0,
"headers": { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded" },
"data": { "grant_type": "password", "username": "<gebruikersnaam>", "password": "<wachtwoord>",
"client_id": "ExternalClient" } }; $.ajax(settings).done(function (response) { console.log(response); });
Access token response
{ "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjlGNzdCRDEwRkUzMDYyQ0U1OTMyM0ExQ0JFNjlGQ0MyRURBNTg0MjEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJuM2U5
RVA0d1lzNVpNam9jdm1uOHd1MmxoQ0UifQ...", "expires_in": 2592000, "token_type": "Bearer", "refresh_token": "ec1539159f4a55fa2263525f80
b408685aa8c35a2ff41f1cc7557c82749fb357", "scope": "offline_access openid reportservice_api" }
Wanneer gebruikersnaam/wachtwoord combi en de client geldig is zou er een json response moeten komen met daarin de access_token. In de response staat ook hoe lang de token geldig is. Periodiek kan deze opnieuw opgehaald worden via de refresh_token dat ook in de response staat. Klopt er iets niet wordt er een foutmelding terug gegeven.
Met een refresh_token kan een nieuwe combinatie van access_token en refresh_token opgehaald worden. Het is de aanbevolen methode om toegang te behouden totdat de token permanent verlopen is. Standaard is een access_token 1 uur geldig. Gedurende de overgang is deze periode verlengt naar 1 maand. Na de overgang gaat de geldigheid weer terug naar de standaard. Vanaf dan is het dus zaak om ieder uur middels de refresh_token nieuwe tokens op te halen om toegang te houden tot de service. In de praktijk zal dit waarschijnlijk inhouden dat bij opvragen van een rapportage, dat dagelijks uitgevoerd wordt, eerst een nieuw access_token opgevraagd moet worden.
Een refresh_token is 15 dagen geldig. De mogelijkheid tot verversen van een access_token via een refresh_token is maximaal 1 maand. Daarna moet er weer opnieuw geauthentiseerd worden.
Een nieuwe access_token opvragen via een refresh_token is bijna gelijk aan het authentiseren. Alleen zijn er een aantal velden in de body anders.
HTTP Request:
POST /authentication/connect/token HTTP/1.1 Host: services.cabmandata.com Accept: application/json Content-Type:
application/x-www-form-urlencoded grant_type=refresh_token&client_id=ExternalClient&refresh_
token=ec1539159f4a55fa2263525f80b408685aa8c35a2ff41f1cc7557c82749fb357
JavaScript (jQuery):
var settings = { "url": "https://services.cabmandata.com/authentication/connect/token", "method": "POST", "timeout": 0,
"headers": { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded" }, "data":
{ "grant_type": "refresh_token", "refresh_token": "ec1539159f4a55fa2263525f80b408685aa8c35a2ff41f1cc7557c82749fb357",
"client_id": "ExternalClient" } }; $.ajax(settings).done(function (response) { console.log(response); });
Response wanneer token nog geldig is staat hieronder. Is de token ongeldig of verlopen wordt er een status 401 geretourneerd. In de response zit weer een nieuwe refresh_token waarmee de volgende interval weer een access_token opgevraagd kan worden.
{ "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjlGNzdCRDEwRkUzMDYyQ0U1OTMyM0ExQ0JFNjlGQ0MyRURBNTg0MjEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJuM2U5R
VA0d1lzNVpNam9jdm1uOHd1MmxoQ0UifQ...", "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjlGNzdCRDEwRkUzMDYyQ0U1OTMyM0ExQ0JFNjlGQ0MyRURBNT
g0MjEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJuM2U5RVA0d1lzNVpNam9jdm1uOHd1MmxoQ0UifQ...", "expires_in": 2592000, "token_type": "Bearer",
"refresh_token": "e643bea2210c1e1d5eb50364fe7ac485e288ecd33376fd5c72ee192870fc172c", "scope": "openid reportservice_api offline_access" }Wanneer we een access_token hebben kunnen we de rapportage opvragen. Hieronder een voorbeeld waarbij de access_token als Bearer in de authorization header gezet wordt van het request.
GET /ReportService/Reports/Shifts?from=2020-05-01T00:00:00&until=2020-05-29T23:59:59 HTTP/1.1 Host: services.cabmandata.com
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjlGNzdCRDEwRkUzMDYyQ0U1OTMyM0ExQ0JFNjlGQ0MyRURBNTg0MjEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJu
M2U5RVA0d1lzNVpNam9jdm1uOHd1MmxoQ0UifQ...