Logowanie i konta w aplikacji dla firmy — Google, e-mail z hasłem czy link jednorazowy?

Opublikowano: Stan na: sierpień 2026 Tekst: Agent AI Tomka Niedźwieckiego · odpowiada: · zasady
Krótka odpowiedź

Logowanie bierze się z bazy, nie pisze się go samemu: konto Google i e-mail z hasłem na start, link jednorazowy dla tych, którzy logują się rzadko. Taki link jest domyślnie ważny godzinę i działa raz. Wbudowana poczta uwierzytelniająca wysyła 2 wiadomości na godzinę, więc własny nadawca podpina się przed pierwszymi klientami.

Wbudowana poczta uwierzytelniająca bez własnego SMTP 2wiadomości / godz. Supabase — Custom SMTP (usługa opisana jako nieprzeznaczona do produkcji; po podpięciu własnego nadawcy start od 30 na godzinę), stan: odczyt 31.08.2026
Ważność linku jednorazowego i kodu z e-maila 1 godzina Supabase — Passwordless email logins (link jednorazowy, jedno żądanie na 60 sekund), stan: odczyt 31.08.2026
Aktywni użytkownicy miesięcznie w darmowym planie bazy 50 000MAU Supabase — Pricing (Pro: 100 000 w cenie, potem 0,00325 USD za użytkownika), stan: odczyt 31.08.2026

Warstwy logowania — z czego składa się wejście do aplikacji?

Z sześciu elementów, nie z jednego ekranu: rejestracja, konto Google, hasło z resetem, link jednorazowy, sesja z odświeżaniem i role. Pierwsze cztery użytkownik widzi. Dwa ostatnie rozstrzygają, co zobaczy po wejściu — i to one bywają zrobione po łebkach.

Ta warstwa jest wbudowana w bazę, w której i tak trzymamy dane: jeden Postgres z politykami dostępu na poziomie wierszy i logowaniem użytkowników. To trzecia z czterech warstw aplikacji dla firmy, a nie osobny system obok niej.

Element, który zaskakuje najczęściej, to poczta. Wbudowana usługa pocztowa dostawcy wysyła 2 wiadomości na godzinę, a dokumentacja opisuje ją wprost jako nieprzeznaczoną do produkcji (Supabase, odczyt 31 sierpnia 2026). Potwierdzenie rejestracji, reset hasła i link jednorazowy idą tym samym kanałem.

Po podpięciu własnego nadawcy dostawca ustawia na start 30 wiadomości na godzinę i dopiero tę wartość podnosi się w ustawieniach (dokumentacja, odczyt 31 sierpnia 2026). To liczba, o którą warto zapytać przed zaproszeniem pierwszej setki kont: jedna wysyłka zaproszeń albo się w niej mieści, albo nie.

Element logowaniaCo robiTypowy wybórLimit albo domyślne ustawienie (odczyt 31.08.2026)Co się psuje, gdy tego brak
Rejestracja i potwierdzenie adresuzakłada konto i sprawdza, czy adres w ogóle istniejee-mail z linkiem potwierdzającym, wysyłany przez bazęjedno żądanie potwierdzenia na 60 sekund dla jednego użytkownikakonta z literówką w adresie: klient nie dostaje niczego, a obsługa nie wie, czy wina jest po jego stronie
Konto Googlewpuszcza bez zakładania nowego hasłalogowanie Google z zakresami niewrażliwymi: imię i adres e-mailprojekt w stanie „Testing”: do 100 użytkowników testowych, zgoda wygasa po 7 dniach od udzieleniapilot wygląda na sprawny do pierwszego poniedziałku, potem wszyscy wypadają z aplikacji
Hasło i resetdroga dla wszystkich, którzy nie pracują na koncie Googlehasło w bazie plus e-mail resetującydomyślne minimum 6 znaków, dokumentacja odradza mniej niż 8; blokowanie haseł znanych z wycieków od planu Prohasła krótsze, niż ktokolwiek zakładał, bo domyślnego ustawienia nikt nie ruszył
Link jednorazowy albo kod z e-mailawpuszcza bez hasła tych, którzy logują się rzadkolink ważny godzinę, do jednego użyciajedno żądanie na 60 sekund dla użytkownika, 30 kodów na godzinę w całym projekcie; ważność powyżej doby dokumentacja odradzaużytkownik klika w link z wczoraj, dostaje błąd i dzwoni; obsługa wysyła kolejny, aż skończy się limit
Sesja i odświeżanietrzyma zalogowanie między wizytamitoken dostępu z krótką ważnością plus token odświeżającydomyślnie 3 600 sekund, maksimum 604 800 sekund; ograniczenie czasu sesji i wylogowanie po bezczynności od planu Proalbo wylogowania w środku pracy, albo sesja żyjąca tydzień na cudzym laptopie
Role i uprawnieniarozstrzyga, kto widzi panel administratoraosobna tabela ról plus polityki dostępu na wierszebez limitu liczbowego w dokumentacji: to zasada projektowa, nie parametr do ustawieniakażdy zalogowany klient jest administratorem

Decyzja: logowanie od dostawcy bazy, dwie drogi na start

Logowanie bierzemy stamtąd, skąd bierzemy bazę. Powód nie jest wygodą programisty. Identyfikator zalogowanej osoby musi być tą samą wartością, którą sprawdza polityka dostępu do wiersza — inaczej powstaje druga lista ludzi i tabela sklejająca ją z pierwszą.

Ta druga lista jest miejscem, w którym awarie robią się drogie. Ktoś zmienia adres w jednym systemie i nie zmienia w drugim. Konto skasowane w jednym miejscu zostaje w drugim. Każdy taki rozjazd kończy się ręcznym grzebaniem w danych, zwykle pod telefon klienta.

Alternatywy są dwie. Własny mechanizm logowania: trzeba w nim napisać reset hasła, blokady po nieudanych próbach, drugi składnik i unieważnianie sesji, a potem to utrzymywać. Osobny dostawca tożsamości jako trzecia usługa: sensowny, gdy firma ma już jedno logowanie do kilku systemów; przy jednej aplikacji dokłada tylko sklejanie.

Drogi dla użytkownika ustawiamy dwie, bo jedna zawsze kogoś odcina. Konto Google działa dla firm pracujących na Gmailu i zdejmuje z aplikacji cały temat haseł. E-mail z hasłem jest dla reszty, a reszty jest sporo: poczta na własnej domenie nie musi stać na Google.

Trzecia droga, link jednorazowy, jest dla tych, którzy logują się rzadko: raz na kwartał po raport, raz w roku po dokument. Oni i tak zapomną hasła, więc reset stałby się ich normalną drogą wejścia. Lepiej dać ją wprost, z ważnością godziny i jednym użyciem.

Co zmienia skala: 10, 1 000 i 10 000 kont?

Trzy rzeczy, w kolejności, która zaskakuje: najpierw ekran zgody Google, potem poczta, a rachunek za samo logowanie na końcu albo wcale. Limit aktywnych użytkowników w darmowym planie bazy to 50 000 miesięcznie (cennik Supabase, odczyt 31 sierpnia 2026) — nie on wypycha aplikację z planu.

Przy dziesięciu kontach pilotażowych rozstrzyga stan projektu w Google. Dopóki jest ustawiony na „Testing”, korzysta z niego najwyżej 100 użytkowników testowych, a ich zgoda wygasa po siedmiu dniach od udzielenia (dokumentacja Google Cloud, odczyt 31 sierpnia 2026). Publikacja projektu zdejmuje oba ograniczenia.

Samo logowanie nie wymaga weryfikacji aplikacji, dopóki prosi wyłącznie o zakresy niewrażliwe, czyli imię i adres e-mail (dokumentacja Google Cloud, odczyt 31 sierpnia 2026). Weryfikacja marki służy do czego innego: żeby na ekranie zgody stanęła nazwa i logo firmy, a nie surowy adres.

Przy tysiącu kont kończy się poczta i to jest pierwszy prawdziwy próg. Potwierdzenie rejestracji, reset hasła i link jednorazowy to trzy wysyłki do jednej osoby w ciągu jednego dnia. Wbudowana usługa daje 2 wiadomości na godzinę, własny nadawca startuje z 30 (dokumentacja, odczyt 31 sierpnia 2026).

Przy dziesięciu tysiącach kont zaczyna się rachunek, ale nie za logowanie. Plan Pro kosztuje od 25 USD miesięcznie i zawiera 100 000 aktywnych użytkowników, powyżej 0,00325 USD za użytkownika (cennik, odczyt 31 sierpnia 2026). Plan płatny odblokowuje za to dwa ustawienia, które przy tej skali są potrzebne.

Pierwsze to ograniczenia sesji: maksymalny czas jej życia i wylogowanie po bezczynności, dostępne od planu Pro. Drugie to blokowanie haseł znanych z wycieków, też od planu Pro (dokumentacja, odczyt 31 sierpnia 2026). Oba dotyczą kont pracowników, nie klientów — i oba włącza się raz.

Gdzie logowanie się wykłada — cztery pułapki z praktyki

Po czym poznać, że logowanie jest ustawione dobrze?

Po czterech odpowiedziach, których nie trzeba szukać w kodzie. Każde „sprawdzimy” znaczy, że ta warstwa nie jest gotowa do startu.

Ostatnie pytanie jest najlepsze, bo odpowiedź „natychmiast” bez wskazania ustawienia znaczy, że nikt tego nie sprawdzał. Konta, hasła i ekran zgody poprawia się w jeden dzień. Sesje i uprawnienia trzeba przemyśleć raz, na początku — potem zmienia się je razem z danymi, które już istnieją.

Najczęstsze pytania

Czy wymagać logowania dwuskładnikowego?

Na kontach administracyjnych tak, na kontach klientów zwykle nie. Dostawca bazy obsługuje dwie metody drugiego składnika: aplikację generującą kod czasowy i kod wysyłany wiadomością na telefon (dokumentacja, odczyt 31 sierpnia 2026). Próby weryfikacji drugiego składnika są ograniczone do 15 na godzinę z jednego adresu, więc atak na oślep nie ma jak działać.

Co zrobić z kontem pracownika, który odchodzi?

Dezaktywować, nie kasować: konto trzyma ślad, kto zatwierdzał i zmieniał dane. Wylogowanie globalne kończy wszystkie sesje, ale tokeny dostępu unieważnionych sesji pozostają ważne do końca swojego czasu ważności — domyślnie godziny (dokumentacja, odczyt 31 sierpnia 2026). Usuwanie danych osobowych to osobna procedura: RODO w aplikacji dla firmy.

Czy dodawać logowanie przez Facebooka albo Apple?

W aplikacji webowej to decyzja o wygodzie. W aplikacji z App Store to reguła: program, który używa logowania społecznościowego do konta głównego, musi udostępnić równorzędną drogę ograniczającą zbieranie danych do imienia i adresu, z możliwością ukrycia adresu (wytyczne recenzji Apple, punkt 4.8, odczyt 31 sierpnia 2026). Kiedy sklep jest w ogóle potrzebny, rozstrzyga porównanie PWA i aplikacji natywnej.

Co dzieje się z sesją po zmianie hasła?

Zmiana hasła bez ponownego uwierzytelnienia jest możliwa, dopóki sesja powstała w ciągu ostatnich 24 godzin; przy włączonej bezpiecznej zmianie hasła użytkownik dostaje jednorazowy kod do potwierdzenia (dokumentacja, odczyt 31 sierpnia 2026). Czy sama zmiana hasła kończy pozostałe sesje, nie znaleźliśmy w dokumentacji na dzień 31 sierpnia 2026 — to pytanie do wykonawcy przed odbiorem.

Czy klient może wejść do aplikacji bez zakładania konta?

Może, jeśli dostanie link z tokenem, który ma termin ważności i zakres — czyli dokładnie to, czym jest link jednorazowy: ważny godzinę i do jednego użycia (dokumentacja, odczyt 31 sierpnia 2026). Czym taki link nie jest: adresem z identyfikatorem rekordu. Numer w adresie da się podmienić, termin ważności nie.

Źródła

  1. Supabase — Custom SMTP (wbudowana usługa: 2 wiadomości na godzinę, nieprzeznaczona do produkcji; własny nadawca startuje z 30 na godzinę) — https://supabase.com/docs/guides/auth/auth-smtp (odczyt 31.08.2026)
  2. Supabase — Rate limits (30 kodów na godzinę w projekcie, 60 sekund na użytkownika, 15 prób weryfikacji drugiego składnika na godzinę) — https://supabase.com/docs/guides/auth/rate-limits (odczyt 31.08.2026)
  3. Supabase — Passwordless email logins (link ważny godzinę, jednorazowy, ważność powyżej doby odradzana) — https://supabase.com/docs/guides/auth/auth-email-passwordless (odczyt 31.08.2026)
  4. Supabase — User sessions (ograniczenie czasu sesji i wylogowanie po bezczynności od planu Pro) — https://supabase.com/docs/guides/auth/sessions (odczyt 31.08.2026)
  5. Supabase — Self-hosting Auth configuration (GOTRUE_JWT_EXP domyślnie 3 600 sekund, maksimum 604 800 sekund) — https://supabase.com/docs/guides/self-hosting/auth/config (odczyt 31.08.2026)
  6. Supabase Auth — README, sekcja Configuration (GOTRUE_PASSWORD_MIN_LENGTH domyślnie 6) — https://github.com/supabase/auth?tab=readme-ov-file#configuration (odczyt 31.08.2026)
  7. Supabase — Password security (zalecane minimum 8 znaków, ponowne uwierzytelnienie po 24 godzinach, blokowanie haseł z wycieków od planu Pro) — https://supabase.com/docs/guides/auth/password-security (odczyt 31.08.2026)
  8. Supabase — Signing out (zakresy wylogowania; tokeny dostępu ważne do końca swojego czasu ważności) — https://supabase.com/docs/guides/auth/signout (odczyt 31.08.2026)
  9. Supabase — Multi-Factor Authentication (aplikacja z kodem czasowym i kod wiadomością na telefon) — https://supabase.com/docs/guides/auth/auth-mfa (odczyt 31.08.2026)
  10. Supabase — Pricing (50 000 aktywnych użytkowników w planie darmowym; Pro od 25 USD, 100 000 w cenie, potem 0,00325 USD) — https://supabase.com/pricing (odczyt 31.08.2026)
  11. Google Cloud — Manage App Audience (stan „Testing”: do 100 użytkowników testowych, zgoda wygasa po 7 dniach) — https://support.google.com/cloud/answer/15549945 (odczyt 31.08.2026)
  12. Google Cloud — OAuth App Verification (zakresy niewrażliwe bez weryfikacji; weryfikacja marki dla nazwy i logo na ekranie zgody) — https://support.google.com/cloud/answer/9110914 (odczyt 31.08.2026)
  13. Apple — App Review Guidelines, punkt 4.8 Login Services — https://developer.apple.com/app-store/review/guidelines/ (odczyt 31.08.2026)
  14. Logowanie, konta i lekcje z uwierzytelniania w naszych wdrożeniach — praktyka zespołu — https://jakzrobicaplikacje.pl/o-serwisie/#skad (2026-08-31)
  15. Google — Sensitive scope verification (zakresy niezbędne do logowania Google są wstępnie wypełnione w sekcji Non-sensitive scopes) — https://developers.google.com/identity/protocols/oauth2/production-readiness/sensitive-scope-verification (odczyt 31.08.2026)
Kto to napisał

Tekst przygotował Agent AI Tomka Niedźwieckiego — treść wygenerowana przez sztuczną inteligencję na podstawie własnych wdrożeń zespołu, dokumentacji dostawców i źródeł podanych wyżej, sprawdzona w osobnym przebiegu weryfikacji faktów i zredagowana. Za fakty odpowiada . Ostatnia weryfikacja: 10 września 2026.