Please enable JavaScript to view this site.

Das Handbuch für den JobRouter Entwickler

Navigation: REST-API-Beispiele > Praxisbeispiele > Authentifizierung

Authentifizierung mit JSON Web Token (JWT)

Scroll Zurück Oben Weiter Mehr

JW-Token generieren

Ein Token wird über die Tokens-Ressource angefordert. Dazu rufen Sie die POST-Route /application/tokens mit Benutzername und Passwort im HTTP-Request-Body auf:

{

    "username": "jdoe",

    "password": "2r5iq|!O%{o@?ApR1q%8"

}

Bitte beachten Sie: Da das Passwort in Klartext übertragen wird, sollte eine sichere Verbindung (HTTPS) genutzt werden.

Der Antworttext wird im folgenden JSON-Format zurückgeliefert:

{

    "tokens": [

        "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.ey..."

    ]

} 

Der Token ist standardmäßig 600 Sekunden gültig. Möchten Sie einen Token mit längerer Gültigkeitsdauer erstellen, geben Sie diese in dem Parameter lifetime in den HTTP-Request-Body an. Die erlaubte Höchstdauer beträgt 3600 Sekunden. Nach Ablauf der Gültigkeitsdauer muss ein neuer Token erstellt werden.

{

    "username": "jdoe",

    "password": "2r5iq|!O%{o@?ApR1q%8",

    "lifetime": 1200

}

Die nachfolgenden Anfragen übertragen den Token in einem X-Jobrouter-Authorization-Header. Beispiel:

X-Jobrouter-Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.ey...

Beispiel

guzzlehttp

// Client wurde bereits initialisiert

 

try {

    // Benutzer authentifizieren

    $response = $client->post('application/tokens', [

        'json' => [

            'username' => 'jdoe',

            'password' => '2r5iq|!O%{o@?ApR1q%8',

        ],

    ]);

 

    // Token ermitteln

    $tokenData = json_decode($response->getBody(), true);

    $token = $tokenData['tokens'][0];

    echo "Token: " . $token;

 

} catch (Exception $e) {

    echo "Fehler: " . $e->getMessage();

}

cURL

$data = '{

        "username": "jdoe",

        "password": "2r5iq|!O%{o@?ApR1q%8"

    }';

 

$headers = [

    'Accept: application/json',

    'Content-Type: application/json',

];

 

$url = 'http://example.org/jobrouter/api/rest/v2/application/tokens;

 

$curlHandle = curl_init();

curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $headers);

curl_setopt($curlHandle, CURLOPT_URL, $url);

curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curlHandle, CURLOPT_POST, 1);

curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $data);

curl_setopt($curlHandle, CURLOPT_COOKIEJAR, 'path/to/cooke/file.cookie');

 

$response = curl_exec($curlHandle);

 

$code = curl_getinfo($curlHandle, CURLINFO_HTTP_CODE);

 

if ($code === 201) {

    $response = json_decode($response, true);

    $token = $response['tokens'][0];

} else {

    echo 'Fehler beim Authentifizieren: ' . $code;

    echo var_export($response, true);

}

 

curl_close();