Jak wygenerować token zabezpieczający?

Do wygenerowania tokena zabezpieczającego należy skorzystać z klucza do API oraz nazwy konta dostępnych w formularzu włączania dostępu do API (Jak włączyć API?).

Token ten to token JWT, o którym więcej można przeczytać na tej stronie: https://jwt.io. Na tej stronie są dostępne biblioteki, do ich tworzenia dla wielu języków programowania - m.in. dla PHP jest to biblioteka firebase/php-jwt - https://github.com/firebase/php-jwt

Stworzenie takiego tokena polega na zakodowaniu przy pomocy klucza API odpowiednich danych. Token ten może być odtworzony tylko przy pomocy tego samego klucza API. Dodatkowo każdy token na czas ważności. Z reguły ustawiony na kilka sekund czyni go niezwykle bezpiecznym - nieważnego tokena nie można już wykorzystać.

W danych tego tokena powinny być dwie dane:

  • iss - wartość to nazwa konta,
  • exp - czas (w sekundach) kiedy token nie będzie już ważny.

W przypadku PHP i z wykorzystaniem biblioteki firebase/php-jwt kod tworzący token zabezpieczający mógłby wyglądać tak:

<?php
use \Firebase\JWT\JWT;

// klucz do API z systemu
$klucz = "klucz_api";
$dane = array(
    'iss' => "nazwa_konta", // nazwa konta z systemu
    'exp' => time() + 60, // czas ważności w sekundach - teraz plus 60 sekund
);

$token = JWT::encode($dane, $klucz); // generowanie tokena
?>

Tak wygenerowany token należy przesłać w każdym zapytaniu do serwera inFirma w nagłówku w formie Authorization: Bearer token.