2024-06-07 14:07 Doba čtení: 9 min

Jak integrovat ověřování uživatelů v aplikaci SolidJS pomocí Supabase

Úvodní informace

SolidJS, dynamický JavaScriptový framework, si rychle získává oblibu pro tvorbu jednostránkových aplikací (SPA). Jeho reaktivní design a modulární architektura komponent umožňují vývoj interaktivních a dynamických uživatelských rozhraní.

Supabase, open-source platforma pro správu dat, nabízí snadný způsob manipulace s databázemi PostgreSQL. Klíčovou funkcí je robustní systém autentizace uživatelů, nezbytný pro zajištění bezpečnosti a ochrany dat aplikací.

Tento návod vás provede procesem integrace uživatelské autentizace do aplikace SolidJS s využitím Supabase. Detailně popíšeme kroky od nastavení Supabase, přes návrh databázového schématu, až po implementaci přihlašování, odhlašování a dalších autentizačních funkcí.

Konfigurace Supabase

1. Založení účtu Supabase: V prvním kroku si vytvořte bezplatný účet na webu Supabase.
2. Založení nového projektu: Po registraci vytvořte nový projekt v rámci Supabase. Zadejte jeho název a specifikujte geografickou oblast, kde bude databáze umístěna.
3. Získání API klíče: Po vytvoření projektu přejděte do sekce "Settings" a zkopírujte API klíč. Tento klíč je potřebný pro připojení vaší SolidJS aplikace k databázi.

1. Vytvoření tabulky uživatelů: V databázi Supabase vytvořte tabulku s názvem "users" a následující strukturou:

sql
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL
);

2. Přidání testovacího uživatele: Pro účely testování vložte do tabulky "users" záznam s administrátorskými údaji:

sql
INSERT INTO users (email, password) VALUES ('[email protected]', 'password');

Implementace autentizace v SolidJS

1. Instalace Supabase balíčku: Pomocí npm nebo yarn nainstalujte do vaší SolidJS aplikace balíček @supabase/supabase-js:


npm install @supabase/supabase-js

2. Import knihovny Supabase: Importujte knihovnu Supabase do vaší SolidJS komponenty:

js
import { createClient } from '@supabase/supabase-js';

3. Vytvoření instance Supabase klienta: Inicializujte klienta Supabase s využitím API klíče a URL vašeho Supabase projektu:

js
const supabase = createClient(
'https://your-project.supabase.co',
'your-api-key'
);

Přihlašování uživatelů

1. Vytvoření přihlašovacího formuláře: Vytvořte formulář pro zadání emailové adresy a hesla:


<form>
<label for="email">Email</label>
<input type="email" id="email" /> <label for="password">Heslo</label>
<input type="password" id="password" /> <button type="submit">Přihlásit se</button>
</form>

2. Zpracování odeslání formuláře: Zpracujte událost odeslání formuláře a proveďte přihlášení uživatele pomocí metody signIn:

js
const handleSubmit = async (e) => {
e.preventDefault(); const email = e.target.querySelector('input[id="email"]').value;
const password = e.target.querySelector('input[id="password"]').value; const { data, error } = await supabase.auth.signIn({ email, password }); if (error) {
console.error(error);
} else {
console.log(data);
}
};

Odhlašování uživatelů

1. Přidání tlačítka pro odhlášení: Vložte do uživatelského rozhraní tlačítko pro odhlášení:


<button id="sign-out-btn">Odhlásit se</button>

2. Zpracování kliknutí na tlačítko: Zpracujte událost kliknutí na tlačítko a proveďte odhlášení uživatele pomocí metody signOut:

js
const handleSignOut = async (e) => {
e.preventDefault(); const { error } = await supabase.auth.signOut(); if (error) {
console.error(error);
} else {
console.log('Úspěšně odhlášen');
}
};

Pokročilé funkce autentizace

Kromě přihlašování a odhlašování nabízí Supabase i další funkce autentizace:

Registrace uživatelů: Pomocí metody signUp umožníte uživatelům vytvářet nové účty.
Obnova hesla: Metoda resetPassword umožní uživatelům resetovat zapomenutá hesla.
Přihlašování přes sociální sítě: Pomocí signInWithOAuth se uživatelé mohou přihlašovat pomocí účtů na sociálních sítích, jako je Google, Facebook či Twitter.
Ověřování e-mailu: Metoda sendMagicLink zasílá uživatelům ověřovací odkaz na jejich e-mailovou adresu.

Závěrem

Integrace uživatelské autentizace v aplikaci SolidJS pomocí Supabase je poměrně přímočarý proces. Supabase poskytuje robustní autentizační nástroje, které usnadňují správu uživatelů ve vaší aplikaci, a to bezpečně.

V tomto tutoriálu jsme vám ukázali, jak nastavit Supabase, navrhnout databázové schéma a implementovat základní autentizační funkce, včetně přihlašování, odhlašování a obnovy hesla. Můžete také využít další funkce autentizace nabízené Supabase pro další posílení zabezpečení vaší aplikace.

Často kladené otázky

1. Jak mohu upravit vzhled přihlašovacích a odhlašovacích formulářů?
Vzhled formulářů pro přihlášení a odhlášení můžete měnit pomocí stylů CSS.

2. Jak mohu ukládat přihlašovací údaje uživatele v prohlížeči?
Pro ukládání přihlašovacích údajů v prohlížeči můžete využít lokální úložiště.

3. Jak zajistit ochranu proti CSRF (Cross-Site Request Forgery) útokům?
Proti CSRF útokům můžete chránit aplikaci použitím CSRF tokenů.

4. Jak aktivovat vícefaktorové ověřování (MFA)?
Supabase podporuje MFA pomocí aplikací třetích stran, jako je Authy nebo Google Authenticator.

5. Jak mohu přidat správu rolí do aplikace?
Supabase umožňuje správu rolí, což vám dovoluje přiřazovat uživatelům různá oprávnění.

6. Jak mohu uživatele vyhledávat a filtrovat?
Supabase nabízí funkce pro vyhledávání a filtrování uživatelů podle e-mailu, jména nebo jiných kritérií.

7. Jak informovat uživatele o změnách hesla nebo e-mailové adresy?
Použijte e-mailové funkce Supabase pro odesílání oznámení o změnách hesla nebo e-mailu uživatelům.

8. Jak provádět kontroly oprávnění pro specifické akce?
Pomocí metod Supabase můžete ověřovat oprávnění uživatele k provádění určitých akcí, jako je čtení, zápis nebo mazání dat.

Petra Kovářová
Autor
Czechia

Sleduje mobilní technologie, Android/iOS a praktické návody pro uživatele.

Předchozí článek
Jak spravovat pole RAID pomocí mdadm na Ubuntu 22.04
Další článek
Zvuková deska se nezobrazuje na Discordu [Oprava]