Tento dokument byl přeložen umělou inteligencí. V případě nepřesností se prosím obraťte na anglickou verzi
NocoBase umožňuje podle potřeby rozšiřovat typy uživatelského ověřování. Uživatelské ověřování se obecně dělí na dva typy: jedním je určení identity uživatele přímo v aplikaci NocoBase, například přihlášení heslem, přihlášení pomocí SMS apod.; druhým je určení identity uživatele službami třetích stran, které následně oznámí výsledek aplikaci NocoBase prostřednictvím zpětných volání, například ověřovací metody jako OIDC, SAML. Proces ověřování pro tyto dva různé typy v NocoBase je v zásadě následující:
api.auth.signIn(), čímž vyžádá přihlašovací rozhraní auth:signIn. Zároveň předá identifikátor aktuálně použitého ověřovatele backendu prostřednictvím hlavičky požadavku X-Authenticator.auth:signIn na základě identifikátoru ověřovatele v hlavičce požadavku přesměruje požadavek na odpovídající typ ověřování. Metoda validate v ověřovací třídě registrované pro tento typ ověřování provede příslušné logické zpracování.token z odpovědi rozhraní auth:signIn, uloží token do Local Storage a dokončí přihlášení. Tento krok je automaticky zpracován interně SDK.
auth:getAuthUrl) a podle protokolu předá informace, jako je název aplikace a identifikátor ověřovatele.auth:redirect), vrátí výsledek ověření a zároveň vrátí informace, jako je název aplikace a identifikátor ověřovatele.AuthManager a aktivně zavolá metodu auth.signIn(). Metoda auth.signIn() následně zavolá metodu validate() pro zpracování ověřovací logiky.tokenu metodou zpětného volání se provede přesměrování (302) zpět na frontendovou stránku, přičemž token a identifikátor ověřovatele jsou předány v parametrech URL, např. ?authenticator=xxx&token=yyy.
Níže si ukážeme, jak registrovat rozhraní na straně serveru a uživatelská rozhraní na straně klienta.
Jádro NocoBase poskytuje registraci a správu pro rozšíření typů ověřování. Zpracování hlavní logiky pro rozšíření přihlašovacího pluginu vyžaduje dědění z abstraktní třídy Auth jádra a implementaci odpovídajících standardních rozhraní.
Úplnou referenci k API naleznete v Auth.
Jádro také registruje základní operace s prostředky souvisejícími s uživatelským ověřováním.
| API | Popis |
|---|---|
auth:check | Zkontroluje, zda je uživatel přihlášen |
auth:signIn | Přihlásit se |
auth:signUp | Registrovat se |
auth:signOut | Odhlásit se |
Ve většině případů mohou rozšířené typy uživatelského ověřování využít stávající logiku ověřování JWT k vygenerování pověření pro přístup uživatele k API. Třída BaseAuth v jádře poskytuje základní implementaci abstraktní třídy Auth, viz BaseAuth. Pluginy mohou přímo dědit z třídy BaseAuth, aby znovu použily část logiky kódu a snížily tak náklady na vývoj.
Při implementaci logiky ověřování uživatele se obvykle pracuje s uživatelskými daty. V aplikaci NocoBase jsou ve výchozím nastavení související kolekce definovány takto:
| Kolekce | Popis | Plugin |
|---|---|---|
users | Ukládá uživatelské informace, jako je e-mail, přezdívka a heslo | Plugin pro uživatele (@nocobase/plugin-users) |
authenticators | Ukládá informace o ověřovateli (entita typu ověřování), odpovídající typu ověřování a konfiguraci | Plugin pro uživatelské ověřování (@nocobase/plugin-auth) |
usersAuthenticators | Spojuje uživatele a ověřovatele, ukládá uživatelské informace pod odpovídajícím ověřovatelem | Plugin pro uživatelské ověřování (@nocobase/plugin-auth) |
Obecně platí, že rozšířené metody přihlášení používají kolekce users a usersAuthenticators k ukládání odpovídajících uživatelských dat. Pouze ve zvláštních případech je nutné přidávat novou kolekci samostatně.
Hlavní pole kolekce usersAuthenticators jsou:
| Pole | Popis |
|---|---|
uuid | Jedinečný identifikátor uživatele pro tento typ ověřování, např. telefonní číslo nebo ID uživatele služby třetí strany |
meta | Pole JSON, další informace k uložení |
userId | ID uživatele |
authenticator | Název ověřovatele (jedinečný identifikátor) |
Pro operace dotazování a vytváření uživatelů datový model AuthModel pro authenticators také zapouzdřuje několik metod, které lze použít ve třídě CustomAuth prostřednictvím this.authenticator[názevMetody]. Úplnou referenci k API naleznete v AuthModel.
Rozšířená metoda ověřování musí být registrována v modulu pro správu ověřování.
Uživatelské rozhraní klienta se registruje prostřednictvím rozhraní registerType, které poskytuje klientská část pluginu pro uživatelské ověřování:

Pokud více ověřovatelů odpovídajících typu ověřování zaregistrovalo přihlašovací formuláře, budou zobrazeny ve formě záložek (Tabů). Název záložky bude odpovídat názvu ověřovatele nakonfigurovaného v administraci.


Obvykle se jedná o tlačítka pro přihlášení třetích stran, ale ve skutečnosti to může být jakákoli komponenta.

Pokud potřebujete přejít z přihlašovací stránky na registrační stránku, musíte to zpracovat sami v přihlašovací komponentě.

Nahoře je obecná konfigurace ověřovatele a dole je část formuláře pro vlastní konfiguraci, kterou lze registrovat.
Pro iniciování požadavků na rozhraní související s uživatelským ověřováním na straně klienta můžete použít SDK poskytované NocoBase.
Podrobnou referenci k API naleznete v @nocobase/sdk - Auth.