Passwort
Die Passwortauthentifizierung kann zum initialen Login verwendet werden. Hierbei werden der API Benutzername und Kennwort eines brandbox-Benutzers übergeben.
Der brandbox Benutzer benötigt eine Rolle die berechtigt ist auf brandbox zuzugreifen: Checkbox mit "Zugriff auf die REST API erlauben".
Hieraus wird ein Zugriffs- sowie ein Aktualisierungstoken erzeugt.
Der Zugriffstoken ist das Geheimnis welches Anfragen an den REST Service autorisiert.
POST
Access-Token via Aktualisierungstoken
POST $YOUR_DOMAIN_URL/rest/v4/accessToken
Content-Type:application/x-www-form-urlencoded
grant_type=password&client_id=$CLIENT_ID&client_secret=-&username=$USERNAME&password=$PASSWORD
Beispiel für eine PHP Implementation
/**
* @param $username
* @param $password
*
* @return bool|string
*/
private function getAccessToken($username, $password) {
$response = false;
$curl = curl_init();
$headers = [
'Content-Type' => 'application/x-www-form-urlencoded'
];
$config = [
'grant_type' => 'password',
'client_id' => 1,
'client_secret' => 'secret',
'username' => $username,
'password' => $password
];
try {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, '$YOUR_DOMAIN_URL/rest/v4/accessToken');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($config));
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
} catch(\Exception $exception) {
$response = $exception->getMessage();
} finally {
curl_close($curl);
}
curl_close($curl);
return $response;
}
Beispiel-Response
{
"code":0,
"message":"Success",
"body":{
"token_type":"Bearer", // steht für die Token-Authentifizierung
"expires_in":2591999, // Gültigkeit des Zugriffstokens in Sekunden
"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImJhZGJlZDY0NTM3NThlNGI5MTA4MDNhODJlMTEzOTc4MzY4NjhiMDZlOGZiZDcwYjY4M2RlOTcwNTQzNzYzYWMxYTQzMmQxMGYxZTQ3YzI4In0.eyJhdWQiOiIxIiwianRpIjoiYmFkYmVkNjQ1Mzc1OGU0YjkxMDgwM2E4MmUxMTM5NzgzNjg2OGIwNmU4ZmJkNzBiNjgzZGU5NzA1NDM3NjNhYzFhNDMyZDEwZjFlNDdjMjgiLCJpYXQiOjE1NTkwNjE2NjMsIm5iZiI6MTU1OTA2MTY2MywiZXhwIjoxNTU5MDY1MjYzLCJzdWIiOiJhZG1pbmlzdHJhdG9yLTMiLCJzY29wZXMiOltdfQ.v1r5DbsKjMildnMzSdFJ-EtYPhgL8Hc-zMZXJUKr_RVcZOAFakzYmmKg6IsqYZpYewSBlf57AC-REd8BkfwhYDb9hSvERQ0fGmaPpR_VPPhUH0uuIZftbKco1p-r2rxpCgFVpAgkUGf9bu6gnpwD4tgbB_FCDbaS_UC-p6zQQbaKJl_3fb7hq3DcAYcsPbQ8WI6L9he8UTa_nS5s-OekHpJbiVl6hhmRm9N5zs-_W4DoNy8bjha29UQWsOB5FMkLawgJCq9n8_IGOaewjQTeQ90p6FKRHiudSjC9o8m64VZi3lVJtf-ffD73_ePfybKe26gSGJxpxuaGCgcMstWHZQ", // Zugriffstoken
"refresh_token":"def5020086adf01c24bb5b10f4576e222e9fd90602ae584710b87925d351f5fe9115d7b538b00f8065867c1fec333804c5379177da16595c338aefc2eb11d4c1c092d3775b73505ab739feca2b8fc2a045c7b25b6f5ddfee6e7b6999b27f1410bed1247313272be259695c0d3fc9d51a4075d58acc898df9e67a92b20a4d8348533c117cd3921418ac3bbf584808af66f5c1551501cce9b1f03b36875fe2d8bddbd9bcdc9650d828c763e347740eccc8c11fd9811908f74f6d8c89ae87edfac4c4f996a2cdeb390b03037451f5e3cb8c86eee00a27c53f71101f3bb6873f580fcb5ab7bf74c97cf3fee8c3706a8fd38aa44660093bee196a84fef291f25e2e79c5f8b191c0f022bb102cc5107e9a566c22cba9050103990e73c2c053de965109034286ee83161fc0d5c7b6d23036c32bfca48d57c46addc45c84ce641a8dd19c0afa553b1555934b4528bd90e39908a01bb0cb3ae5536600e5178f5a40b1f64b05ed933a91f30f73a1b21381853b25e18f" // Aktualisierungstoken, der zur Verlängerung des Zugriffstokens verwendet werden kann
}
}
$YOUR_DOMAIN_URL
Die Ziel Domain auf die angefragt werden soll
$CLIENT_ID
Die Mandanten-ID, auf die die Anfrage nach dem Access-Token validiert werden soll.
$USERNAME
Der Benutzername des brandbox-Benutzers
$PASSWORD
Das Passwort des brandbox-Benutzers