Uwierzytelnianie czlonkow witryny
Dodaj rejestracje, logowanie, ochrone stron i reset hasla do opublikowanej witryny.
Przeglad
Czlonkowie witryny to koncowi uzytkownicy opublikowanej strony — oddzielni od uzytkownikow panelu CMS. Kazda przestrzen robocza posiada wlasna baze czlonkow (multi-tenant), uwierzytelnianie odbywa sie za pomoca bezpiecznych ciasteczek httpOnly.
Wlaczanie uwierzytelniania
Przejdz do Ustawienia → Uwierzytelnianie czlonkow i wlacz Wlacz uwierzytelnianie czlonkow.
| Ustawienie | Opis |
|---|---|
allowRegistration | Zezwol na samodzielna rejestracje |
requireEmailVerification | Blokuj logowanie do weryfikacji email |
loginUrl | Sciezka do strony logowania |
registerUrl | Sciezka do strony rejestracji |
afterLoginUrl | Przekierowanie po logowaniu |
afterLogoutUrl | Przekierowanie po wylogowaniu |
Budowanie stron autoryzacji
Stworz strony: /login, /register, /forgot-password, /reset-password, /verify-email.
Blok logowania
const result = await context.auth.login(email, password);
if (result.success) {
window.location.href = redirectUrl;
}Blok rejestracji
const result = await context.auth.register(email, password, {
firstName: "Jan", lastName: "Kowalski"
});Wylogowanie
await context.auth.logout();Blok przypomnienia hasla
await context.graphql(`
mutation($wid: ID!, $email: String!) {
siteMemberRequestPasswordReset(
workspaceId: $wid, email: $email
) { success message }
}
`, { wid: context.workspace.id, email });Blok resetowania hasla
const token = new URLSearchParams(location.search).get("token");
await context.graphql(`
mutation($token: String!, $pw: String!) {
siteMemberResetPassword(token: $token, newPassword: $pw) {
success message
}
}
`, { token, pw: newPassword });Blok weryfikacji email
const token = new URLSearchParams(location.search).get("token");
await context.graphql(`
mutation($token: String!) {
siteMemberVerifyEmail(token: $token) { success message }
}
`, { token });Kontekst autoryzacji w blokach
context.auth dostepny gdy uwierzytelnianie wlaczone. Funkcje dzialaja tylko client-side.
| Wlasciwosc | Typ | Opis |
|---|---|---|
context.auth.isAuthenticated | boolean | Czy gosc zalogowany |
context.auth.member | object | { id, email, role, isVerified, profile } |
context.auth.login() | Promise | Zwraca { success, message } |
context.auth.register() | Promise | Zwraca { success, message } |
context.auth.logout() | Promise | Czysci sesje |
Ochrona stron
| Ustawienie | Opis |
|---|---|
requireAuth: true | Przekieruj niezalogowanych |
allowedRoles: ["premium"] | Ogranicz do wybranych rol |
Role czlonkow
Domyslne: Guest, Member (domyslna), Premium. Mozna konfigurowac per workspace.
Profil czlonka
firstName,lastName,displayNameavatarUrl,phone,customFields
Wymagania hasla
- Min 8 znakow, wielka litera, mala litera, cyfra
Weryfikacja email
- Rejestracja → status pending, email wyslany
- Klikniecie linku → status active
- Jesli
requireEmailVerification: true, logowanie zablokowane
Reset hasla
- Formularz → email z linkiem
- Klikniecie → nowe haslo
- Token wygasa po 1 godzinie
Sesja
JWT w httpOnly cookie, waznosc 7 dni. Automatycznie dolaczane do zadan GraphQL z blokow.
Wskazowki
- Stworz 5 stron auth:
/login,/register,/forgot-password,/reset-password,/verify-email - Chronione strony przekierowuja do
/logindomyslnie - Funkcje
context.authdzialaja tylko client-side - Dane czlonkow sa ograniczone do workspace (multi-tenant safe)