Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Vytvoření vlastního autentizačního systému může být skličující úkol. Vyžaduje hluboké porozumění ověřovacím protokolům a procesům autentizace a autorizace uživatelů. Integrací nástroje, jako je Supabase, se však můžete více zaměřit na budování základní logiky vaší aplikace.

Supabase je open-source alternativa Firebase, která poskytuje cloudovou vývojovou platformu. Nabízí řadu backendových služeb, jako je plnohodnotná databáze Postgres, autentizační služba a funkce bez serveru.

Je navržen tak, aby byl přístupnější a umožnil vám rychle nastavit projekty. Postupujte dále a zjistěte, jak integrovat ověřovací službu do vašich aplikací React.js.

Vytvořte nový projekt na Supabase Developer Console

Chcete-li vytvořit nový projekt na Supabase Developer Console, postupujte takto:

  1. Zaregistrujte se na a Supabase vývojářský účet. Přejděte na řídicí panel a vytvořte nový projekt.
  2. instagram viewer
  3. Vyplňte název projektu a heslo (toto je pro tento tutoriál volitelné, ale doporučuje se při nastavování databáze), vyberte oblast a nakonec klikněte na Vytvořit nový projekt.
  4. V části Nastavení API zkopírujte projekt URL a veřejná anon klíč.

Nastavte poskytovatele ověření

Poskytovatel auth poskytuje uživatelům bezpečný způsob ověřování pomocí různých sociálních přihlášení. Supabase ve výchozím nastavení poskytuje poskytovatele e-mailu. Navíc můžete přidat další poskytovatele, jako je Google, GitHub nebo Discord v závislosti na vašich preferencích.

Tento tutoriál vám ukáže, jak nastavit poskytovatele Google. Chcete-li tak učinit, postupujte takto:

  1. V levém podokně vyberte Autentizace tab.
  2. Na stránce Nastavení ověřování vyberte možnost Poskytovatelé a nakonec vyberte poskytovatel Google ze seznamu poskytovatelů. Všimněte si, že poskytovatel e-mailu je již ve výchozím nastavení nakonfigurován. Nemusíte provádět žádné konfigurace.
  3. Povolit Poskytovatel přepínací tlačítko.
  4. Poskytovatel Google vyžaduje dva vstupy: ClientID a ClientSecret. Tyto dvě hodnoty získáte po vytvoření aplikace v Google Developer Console. Prozatím zkopírujte Adresa URL přesměrování. Použijete jej k nastavení aplikace v Google Developer Console k získání ClientID a ClientSecret.

Nastavení projektu ve Vývojářské konzoli Google (GDC)

Chcete-li se ověřit u společnosti Google, budete muset zaregistrovat svou aplikaci v Google Developer Console (GDC) a získat ClientID a ClientSecret. Chcete-li nastavit projekt na GDC, postupujte takto:

  1. Jít do Google Developer Console a přihlaste se pomocí svého účtu Google pro přístup ke konzoli.
  2. Po přihlášení přejděte na API a služby vyberte kartu Vytvořte přihlašovací údaje možnost a poté vyberte ID klienta OAuth.
  3. Určete typ aplikace z nabízených možností a poté vyplňte název vaší aplikace.
  4. Poté zadejte adresu URL domovské trasy vaší aplikace (http//:localhost: 3000) a nakonec zadejte adresu URL přesměrování zpětného volání. Vložte adresu URL přesměrování, kterou jste zkopírovali ze stránky nastavení poskytovatele Google Supabase. Klikněte na Uložit k dokončení procesu.
  5. Zkopírujte ClientID a ClientSecret a vraťte se na řídicí panel projektu Supabase a vložte je do vstupních polí ClientID a ClientSecret na stránce nastavení poskytovatele Google. Klikněte Uložit umožnit Poskytovateli.

Nakonfigurujte službu Supabase Authentication Service v aplikaci React.js

Vytvořte aplikaci React.jsa poté otevřete složku projektu ve svém oblíbeném editoru kódu. Dále v kořenovém adresáři složky projektu vytvořte soubor ENV, který bude obsahovat proměnné prostředí: adresu URL projektu a veřejný anon klíč. Přejděte na stránku nastavení Supabase, otevřete sekci API a zkopírujte adresu URL projektu a veřejný anon klíč.

REACT_APP_SUPABASE_URL= URL projektu
REACT_APP_SUPABASE_API_KEY = veřejnost anon klíč

1. Nainstalujte požadované balíčky

Spusťte tento příkaz na svém terminálu a nainstalujte požadované závislosti:

instalace npm @supabase/auth-ui-react @supabase/supabase-js reagovat reagovat-router-dom

2. Vytvořte přihlašovací stránku a součásti úspěšné stránky

Vytvořte novou složku v adresáři /src vaší aplikace React.js a pojmenujte ji jako stránky. V této složce vytvořte dva soubory: Login.js a Success.js.

3. Komponenta přihlašovací stránky

Tato komponenta vykreslí funkci registrace a přihlášení pomocí uživatelského rozhraní React.js Authentication poskytovaného Supabase. Importovali jste uživatelské rozhraní ověřování jako závislost (@supabase/auth-UI-react), což usnadňuje implementaci funkce ověřování.

Do souboru login.js přidejte níže uvedený kód:

import Reagovat z'reagovat';
import {createClient} z'@supabase/supabase-js';
import {Auth, ThemeSupa} z'@supabase/auth-ui-react';
import {useNavigate} z'react-router-dom';
konst supabase = createClient(
proces.env.REACT_APP_SUPABASE_URL,
proces.env.REACT_APP_SUPABASE_API_KEY
);
funkcePřihlásit se() {
konst navigovat = useNavigate();
supabase.auth.onAuthStateChange(asynchronní (událost) =>{
-li (událost!== "ODHLÁŠENO") {
navigovat('/úspěch');
}jiný{
navigovat('/');
}
})
vrátit se (
<divjméno třídy="Aplikace">
<záhlavíjméno třídy="Záhlaví aplikace">
supabaseClient={supabase}
vzhled={{theme: ThemeSupa}}
téma ="temný"
poskytovatelé={['Google']}
/>
záhlaví>
div>
);
}
vývoznívýchozí Přihlásit se;

Pojďme si to rozebrat:

  • Inicializujte klienta Supabase s proměnnými prostředí -- URL vašeho projektu a váš veřejný anon klíč v souboru ENV.
  • Nastavte posluchač událostí pro sledování změn stavu ověřování pomocí metody supabase.auth.onAuthStateChange(), tj. stav autentizace není "SIGNED_OUT", pak je uživatel navigován na stránku '/úspěch', jinak je uživatel navigován na '/' (domovská/přihlašovací) stránka.
  • Ke správě tohoto procesu použijete metodu navigace z háku useNavigate.
  • Nakonec vraťte div obsahující komponentu uživatelského rozhraní React Auth z knihovny Supabase se vzhledem themeSupa (poskytovaný Supabase), tmavým motivem a poskytovatelem Google nastaveným jako vlastnosti.

4. Součást stránky úspěchu

Tato komponenta vykreslí úspěšnou stránku s podrobnostmi o uživateli poté, co je uživatel úspěšně ověřen, a tlačítkem pro odhlášení.

Do souboru Success.js přidejte níže uvedený kód:

import Reagovat z'reagovat';
import {createClient} z'@supabase/supabase-js';
import {useNavigate} z'react-router-dom';
import {useEffect, useState} z'reagovat';
konst supabase = createClient(
proces.env.REACT_APP_SUPABASE_URL,
proces.env.REACT_APP_SUPABASE_API_KEY
);
funkceÚspěch() {
konst [user, setUser] = useState([]);
konst navigovat = useNavigate();
useEffect (() => {
asynchronnífunkcegetUserData(){
čekat supabase.auth.getUser().then((hodnota) => {
-li(hodnota.data?.uživatel) {
setUser(hodnota.data.uživatel)}
}) }
getUserData();
},[]);
konst avatar = uživatel?.metadata_uživatele?.avatar_url;
konst userName = user?.user_metadata?.full_Name;
asynchronnífunkcesignOutUser(){
čekatsupabáze.auth.odhlásit se();
navigovat('/');
};
vrátit se (
<divjméno třídy="Aplikace">
<záhlavíjméno třídy="Záhlaví aplikace">
<h1>Přihlášení úspěšnéh1>
<h2>{userName}h2>
<imgsrc={avatar} />
<knoflíkpři kliknutí={()=> signOutUser()}>Odhlásit seknoflík>
záhlaví>
div>
);
}
vývoznívýchozí Úspěch;

Pojďme si to rozebrat:

  • Inicializujte klienta Supabase s proměnnými prostředí -- URL vašeho projektu a váš veřejný anon klíč v souboru ENV.
  • Použití Háčky React.js, useState a useEffect, abyste získali data z odpovědi API.
  • Hák useEffect implementuje asynchronní funkci, která volá metodu supabase.auth.getUser. Tato metoda načte informace o uživateli spojené s relací aktuálního uživatele.
  • Asynchronní funkce pak zkontroluje, zda uživatelská data existují, a pokud ano, nastaví je na stavovou proměnnou.
  • Funkce signOutUser používá metodu supabase.auth.signOut k odhlášení uživatele a jeho navigaci zpět na přihlašovací stránku, když klikne na tlačítko odhlášení.
  • Nakonec vraťte div s některými informacemi o uživateli.

5. Nakonfigurujte směrování stránek

Nakonec nakonfigurujte trasy pro přihlašovací i úspěšné stránky.

Do souboru app.js přidejte kód níže:

import Reagovat z'reagovat';
import { BrowserRouter tak jako Směrovač, trasy, trasa } z'react-router-dom';
import Přihlásit se z'./pages/Login';
import Úspěch z'./pages/Success';
funkceAplikace() {
vrátit se (
<Směrovač>
//Definujte trasy
"/" element={} />
"/úspěch" element={} />
Trasy>
Směrovač>
);
}
vývoznívýchozí Aplikace;

Pojďme si to rozebrat:

  • Definujte dvě cesty: cestu pro přihlašovací stránku a cestu pro stránku úspěchu pomocí komponent Router z knihovny Reagovat Router.
  • Nastavte cesty trasy na '/' a '/success' a přiřaďte komponenty Login a Success k jejich příslušným trasám.
  • Nakonec spusťte tento příkaz na svém terminálu, abyste roztočili vývojový server:
 npm Start
  • Navigovat do http//:localhost: 3000 ve vašem prohlížeči, abyste viděli výsledek. Přihlašovací komponenta vykresluje React-auth-UI Supabase s poskytovateli e-mailu i Google.

Můžete se buď ověřit pomocí Googlu, nebo se zaregistrovat pomocí e-mailu a hesla a pomocí těchto přihlašovacích údajů se přihlásit. Výhodou používání poskytovatelů sociálního přihlášení Supabase nebo poskytovatele e-mailu je, že se nemusíte starat o logiku registrace.

Jakmile se uživatel zaregistruje u poskytovatele sociálních sítí nebo pomocí e-mailu a hesla, data budou uložena v uživatelské databázi Supabase Auth pro váš projekt. Když se přihlásí pomocí svých přihlašovacích údajů, Supabase ověří podrobnosti podle přihlašovacích údajů použitých k registraci.

Supabase usnadňuje autentizaci v Reactu

Supabase nabízí komplexní sadu funkcí nad rámec ověřování, jako je hostování databáze, přístup k API a streamování dat v reálném čase. Nabízí také funkce, jako je tvůrce dotazů a vizualizace dat, které vývojářům pomáhají vytvářet a spravovat jejich aplikace efektivněji.

Díky intuitivnímu řídicímu panelu a robustnímu rozhraní API je Supabase výkonným nástrojem pro vytváření škálovatelných a bezpečných aplikací.