4.1.11. Knihovna MojeID LITE¶
Javascriptová knihovna MojeID LITE (nebo také MojeID Connect) umožňuje načtení údajů z identity MojeID do webové stránky na straně klienta za využití protokolu OpenID Connect.
Tuto funkcionalitu je možné využít například pro jednoduché předvyplnění webového formuláře údaji uživatele, který má aktivní účet MojeID.
Abyste existující formulář rozšířili o tuto funkcionalitu, musíte provést minimálně následující kroky:
Vložit odkaz na knihovnu.
Tuto knihovnu je možné vystavit na vlastním serveru, pokud chcete snížit závislost na externím webu. Knihovna je ke stažení na této adrese. Knihovna závisí na kryptografické knihovně jsrsasign, která je v aktuální verzi k dispozici i na našem webu, takže není nutné ji vkládat přímo. Kód skriptu pro vložení knihovny musí být v sekci
<HEAD>
.Příklad vložení knihovny:
<script type="text/javascript" src="https://www.mojeid.cz/public/media/1542958574/150/" data-jsrsasign="https://www.mojeid.cz/public/media/1542956522/149/"> </script>
Zavolat funkci na vytvoření objektu MojeidConnect.
Tento objekt reprezentuje komunikaci se serverem MojeID. Při volání vytvářející funkce je možné nastavit některé parametry, které ovlivní proces předání údajů. Kód skriptu s voláním funkce musí být v sekci
<HEAD>
.Příklad vytvoření objektu:
<script type="text/javascript"> (function() { mojeid = createMojeidConnect( { clientName: "Ukázkový formulář", claims: ['phone_number', 'family_name', 'given_name', 'nickname', 'email', 'address', 'birthdate', 'gender', 'website', 'profile'] } ); })();</script>
Na tlačítko, které aktivuje předvyplnění formuláře, navěsit volání metody requestAuthentication().
Tato metoda zajistí nastartování autentizačního procesu a vyplnění hodnot odsouhlasených údajů do formuláře.
Příklad kódu pro tlačítko:
<button onclick="mojeid.requestAuthentication()"> Předvyplnit pomocí MojeID </button>
Parametry funkce createMojeidConnect(options)
Při volání této funkce je možné ve slovníkové struktuře určit některé parametry, které ovlivní komunikaci se serverem MojeID:
clientId
Je možné, že je služba již zaregistrovaná v MojeID serveru. Pokud ano má tato služba přidělené clientId a toto je možné uvést v parametru. Pokud není clientId vyplněné, dojde k dynamické registraci podle specifikace OpenID Connect s využitím adresy uvedené v parametru
regEndpoint
. Pozor: automatickou (dynamickou) registraci nelze využít pro Plný přístup.
clientName
V případě dynamické registrace je možné zde uvést název služby, který se zobrazí uživateli při schválení předání údajů. Pokud nebude název uveden, použije se URL služby.
scope
Požadované předávané údaje v podobě skupin údajů. Hodnotou je podseznam
['openid', 'profile', 'email', 'phone', 'address']
, přičemž'openid'
musí být uveden vždy. Pokud není uveden, je hodnota['openid']
.
claims
Požadované předávané údaje v podobě jednotlivých atributů. Hodnotou je seznam atributů. Úplný seznam možných atributů je k dispozici v hodnotě
claims_supported
z konfiguračního souboru serveru. Jako příklad může sloužit tento seznam:['phone_number', 'family_name', 'given_name', 'nickname', 'email', 'address', 'birthdate', 'gender', 'website', 'profile']
attrDict
Knihovna předpokládá, že položky formuláře mají stejné
id
jako je název atributu ze seznamuclaims
. Pokud toto není pravda, je v tomto parametru možné uvést mapovací seznam pro id formulářové položky a název atributu.
formCallback
Pokud nestačí mapovací slovník z
attrDict
, je zde možné uvést název vlastní JS funkce, která se postará o vyplnění formuláře.
display
Hodnota je buď
popup
neboredirect
podle toho, zda se přihlášení má provést v novém okně nebo ve stávajícím. Výchozí hodnota jepopup
.
regEndpoint
URL registračního endpointu podle specifikace protokolu OpenID Connect. Výchozí hodnota je
https://mojeid.cz/oidc/registration/
.
authEndpoint
URL autentizačního endpointu podle specifikace protokolu OpenID Connect. Výchozí hodnota je
https://mojeid.cz/oidc/authorization/
.
Ukázkový formulář
Pro snazší porozumění si můžete on-line prohlédnout a vyzkoušet kompletní ukázkový formulář.