Odhlašování uživatelů v REST API

Jak odhlásit uživatele přes REST API

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než týdnem

Po úspěšném přihlášení uživatele do ABRA Flexi vzniká autentizační sezení.

Následně po výběru firmy si systém zakládá ke každému uživateli kontextové informace o připojení k dané firmě. Kontext obsahuje užitečná data, která se nemění příliš často. Například základní měnu, nastavení firmy nebo oprávnění uživatele. Případná změna těchto údajů ovlivní pouze nové přihlášení uživatele.

Potřebujete-li zajistit propagaci změn i k dlouhodobě přihlášeným uživatelům, nezbývá než vynutit ukončení jejich sezení. K tomu lze využít službu na adrese:

POST /status/user/{přihlašovací jméno}/logout

Pozn.: Stejná metoda je využívána i pro WUI, proto v případě API požadujte formát JSON nebo XML, čímž zabráníte finálnímu přesměrování.

Aktuálně je možné tímto způsobem ukončovat sezení uživatelů přihlášených prostřednictvím webového rozhraní nebo API sezení vytvořená JSON autentizací. Pro API požadavky využívající HTTP autentizaci sezení nevzniká.

Požadavek lze poslat metodou POST, přičemž existují 2 možnosti použití:

  1. Odhlášení uživatele ze všech firem + zrušení všech autentizačních sezení

  2. Odhlášení uživatele z konkrétní firmy (všechna autentizačních sezení zůstávají v platnosti)k URL doplňte parametr: company=

Odhlášení uživatele z firmy provede pouze zahození kontextových informací. K obnovení kontextu a jeho opětovnému nakešování dojde automaticky s příštím požadavkem uživatele.

Úspěšné volání vrací HTTP status 200 (API volání), případně přesměrování (HTTP status 303) na URL /status/user (HTML volání).

Pokud nechcete dostávat HTTP chybu 404 při odhlašování uživatele, který není přihlášen, tak připojte volitelný parametr ?ignore-not-found=true. Chybový status je vracen i v případě, že došlo k zahození kontextových informací, ale neexistovalo autentizační sezení (API volání s HTTP autentizací).

Využití služby je umožněno uživateli s právem přístupu do všech firem a současně právem spravovat licenci. Případně lze využít serverovou autorizaci nebo také může odhlásit uživatel sám sebe.

Příklady

Odhlášení uživatele novak ze všech firem a ukončení platnosti autentizace:

POST /status/user/novak/logout

Odhlášení uživatele franta z firmy nejlepsi_firma_a_s_ (bez zrušení autentizace):

POST /status/user/franta/logout?company=nejlepsi_firma_a_s_
Dostali jste odpověď na svou otázku?