Autentizace a autorizace
- Autentizace je proces ověření identity uživatele, taky známe jako přihlášení (ověřujeme, že uživatel je ten, za koho se vydá).
- Autorizace je proces ověření, zda má uživatel práva udělat danou akci - tedy autorizuje jej to k dělání dané činnosti v aplikaci (např. může upravovat článek).
Ověření uživatele (Autentizace)
Ověření jménem a heslem je jednoduchý způsob, jak ověřit identitu uživatele.
V praxi se ale spíš využívají jiné techniky, např. OAuth, OpenID Connect, JWT, atd.
Naše aplikace chceme většinou ověřit pomocí nějakého poskytovatele identity - tedy např. Google, Facebook, Apple, atd.
Klasický scénář ověření uživatele:
- Uživatel klikne na tlačítko “Přihlásit se pomocí …”
- Otevře se dialogové okno s možností přihlásit se pomocí poskytovatele identity
- Poskytovatel identity ověří uživatele a pošle nám do aplikace string token, který nám potvrzuje, že uživatel je ten, za koho se vydá
- Aplikace ověří token a pokud je validní, tak uživatele prohlásíme za přihlášeného do naší aplikace
AuthJS (dříve NextAuth)
AuthJS je jedna z knihoven, která umožňuje snadno implementovat autentizaci a autorizaci do naší aplikace.
Tato knihovna je zdarma a open source, takže můžeme si ji použít i v našich projektech.
Do React aplikace ji snadno přidáme pomocí konfigurace a pár kroků. Celý proces je popsaný v dokumentaci AuthJS.
AuthProvider funguje jako Context API, kterou už znáš. Díky tomu můžeme v naší aplikaci používat přihlášení a další auth funkce.
import { AuthProvider } from "@auth/react";
export function App() {
return (
<AuthProvider>
<Routes />
</AuthProvider>
);
}