Die Authentifizierung ist der erste Schritt der programmatischen Beschaffung eines JSON-Web-Tokens zur Verwendung mit der API.

  • Endpunkt: /cloud-service-auth/auth
  • Methode: POST
  • Body:
{
    name, // your@mail.com
    password,
    lifetime: 1800000, // millis -> 30mins
    code: null,
    termsOfUse: null // TODO
}

JavaScript (NodeJS) Beispiel:

const getInitialToken = () => {
    const headers = new fetch.Headers({
        "Content-Type": "application/json;charset=UTF-8"
    });

    return fetch(config.baseurl + "/cloud-service-auth/auth", {
        method: "POST",
        headers: headers,
        body: JSON.stringify({
            name,
            password,
            lifetime: 1800000, // millis -> 30mins
            code: null,
            termsOfUse: null
        })
    }).then(resp => resp.json());
};

Authorisierung

Mit dem aus der Authentifizierungsanforderung resultierenden Token können wir nun dieses Token erweitern, um ein Token mit einem Kontext zu erhalten, das bei weiteren API-Anforderungen verwendet werden kann.

  • Endpunkt: /cloud-service-auth/auth
  • Methode: POST
  • Body:
{
    accountIds: [ /* list of account UUIDs */ ]
}

JavaScript (NodeJS) Beispiel:

 const upgradeToken = (initialToken, ids) => {
     if (!initialToken.value) {
         throw new Error("Missing JWT");
     }

     const headers = new fetch.Headers({
         "Content-Type": "application/json;charset=UTF-8",
         "Authorization": "Bearer " + initialToken.value
     });

     return fetch(config.baseurl + "/cloud-service-auth/auth", {
         method: "POST",
         headers: headers,
         body: JSON.stringify({
             accountIds: ids
         })
     }).then(resp => {
         if (resp.ok) {
             // do something with the token here
         } else {
             console.log(resp);
             throw new Error("Error upgrading JWT");
         }
     });
 };