Przejdź do głównej zawartości

POST /api/auth/login/

Utwórz uwierzytelnioną sesję.

Uwierzytelnianie: niewymagane.


{
"username": "tr100e",
"passwordHash": "6c2a6f1f6f1edc1c6b7b5d3f7c6c8ce6e1f6bb3f4c1f9c0b0c2d5e8f7a9b3c4d"
}
PoleTypWymaganeOpis
usernameciąg znakówtakNazwa użytkownika; musi mieć wartość "tr100e"
passwordHashciąg znakówtakSzesnastkowy skrót SHA-256 o długości 64 znaków
SHA256(username + password + salt)

gdzie wartość salt jest pobierana za pomocą GET /api/auth/salt/.

Ważne: wartość salt jest jednorazowa i traci ważność po każdej próbie logowania. Przed ponowną próbą logowania należy pobrać nową wartość.

Wartość passwordHash jest najpierw porównywana z hasłem powerUser, następnie z hasłem user. Pole accessLevel w odpowiedzi odpowiada pasującemu hasłu.

Jeśli weryfikacja hasła interfejsu Web jest wyłączona za pomocą ustawienia webPwrPassEnable lub webUserPassEnable, urządzenie może przyznać odpowiedni poziom dostępu anonimowego bez żądania logowania. Poziom ten można ustalić za pomocą GET /api/auth/status/. Wyłączenie weryfikacji powerUser ma pierwszeństwo przed wyłączeniem weryfikacji user.


{
"authType": "Bearer",
"token": "ej5k2pVg4Pd8yBdUqFPq8bdaStpeAZhyelpmkhtOivdK8r7E",
"ttlSec": 60,
"accessLevel": "user"
}
PoleTypWymaganeOpis
authTypeciąg znakówtakZawsze "Bearer"
tokenciąg znakówtak48-znakowy ciąg znaków ASCII [A-Za-z0-9]
ttlSecliczbatakCzas trwania sesji w sekundach
accessLevelciąg znakówtak"user" lub "powerUser"

  • Jeden licznik nieudanych prób jest współdzielony przez wszystkie interfejsy (Web, klawiaturę i Modbus).
  • Po 5 nieudanych próbach wszystkie interfejsy zostają zablokowane na 300 sekund.
  • Licznik jest zerowany po 300 sekundach bezczynności lub po pomyślnym logowaniu.
  • Stan jest przechowywany w rejestrach zapasowych RTC i zachowywany po wyłączeniu zasilania.

{
"error": "ERROR_UNAUTHORIZED",
"message": "3 attempts left"
}
{
"error": "ERROR_LOCKED",
"message": "Retry after 247 seconds"
}