Ekonomický systém FlexiBee umožňuje použít kontakty uložené v databázi k autentizaci.
Pomocí API je nejdříve nutné kontaktu nastavit jméno a heslo. Existují dva způsoby:
-
Heslo je možné zaslat ve formě plain-text:
POST /c/firma/kontakty/1.xml <kontakt> <username>jan</username> <password hash="" salt="">heslo</password> </kontakt>
Heslo, zaslané jako plain-text, je ve FlexiBee uložené v bezpečné formě pomocí hash funkce.
-
Heslo je možné zaslat ve formě výsledku volání hash funkce. V tomto případě jsou povinné parametry salt a typ hash funkce:
POST /c/firma/kontakty/1.xml <kontakt> <username>jan</username> <password hash="sha256" salt="abcd">ed9bddc9f20f1aa3587979c9536c625d485</password> </kontakt>
Hodnota elementu
<password>
je zde výsledek hash funkce aplikované na řetězec vzniklý spojením hesla a hodnoty salt. Původní heslo v tomto případě není nutné zasílat.Podporované typy hash funckí:
- sha1
- sha256
- sha512
- pbkdf2
- md5
Poté je možné pomocí API autentizovat kontakt voláním:
POST /c/firma/kontakty/1/authenticate Accept: application/xml Content-Type: application/x-www-form-urlencoded username=jan&password=heslo
Autentizace funguje také na obecné URL kontaktů:
POST /c/firma/kontakt/authenticate Accept: application/xml Content-Type: application/x-www-form-urlencoded username=jan&password=heslo
Výsledkem je vždy odpověď s HTTP status kódem 200, výsledek je uvedený v těle odpovědi:
-
Úspěšná autentizace:
<?xml version="1.0" ?> <winstrom version="1.0"> <success>true</success> <message></message> </winstrom>
-
Neúspěšná autentizace:
<winstrom version="1.0"> <success>false</success> <message>Bylo zadáno chybné uživatelské jméno či heslo.</message> </winstrom>