Uwierzytelnianie czlonkow witryny

Dodaj rejestracje, logowanie, ochrone stron i reset hasla do opublikowanej witryny.

Last updated: April 4, 2026

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.

UstawienieOpis
allowRegistrationZezwol na samodzielna rejestracje
requireEmailVerificationBlokuj logowanie do weryfikacji email
loginUrlSciezka do strony logowania
registerUrlSciezka do strony rejestracji
afterLoginUrlPrzekierowanie po logowaniu
afterLogoutUrlPrzekierowanie 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.

WlasciwoscTypOpis
context.auth.isAuthenticatedbooleanCzy gosc zalogowany
context.auth.memberobject{ id, email, role, isVerified, profile }
context.auth.login()PromiseZwraca { success, message }
context.auth.register()PromiseZwraca { success, message }
context.auth.logout()PromiseCzysci sesje

Ochrona stron

UstawienieOpis
requireAuth: truePrzekieruj niezalogowanych
allowedRoles: ["premium"]Ogranicz do wybranych rol

Role czlonkow

Domyslne: Guest, Member (domyslna), Premium. Mozna konfigurowac per workspace.

Profil czlonka

  • firstName, lastName, displayName
  • avatarUrl, phone, customFields

Wymagania hasla

  • Min 8 znakow, wielka litera, mala litera, cyfra

Weryfikacja email

  1. Rejestracja → status pending, email wyslany
  2. Klikniecie linku → status active
  3. Jesli requireEmailVerification: true, logowanie zablokowane

Reset hasla

  1. Formularz → email z linkiem
  2. Klikniecie → nowe haslo
  3. 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 /login domyslnie
  • Funkcje context.auth dzialaja tylko client-side
  • Dane czlonkow sa ograniczone do workspace (multi-tenant safe)