Projekt aplikacji SaaS
8 godz. 8 min · Next.js · Full-stack i Programowanie
Daniel NoworytaFull stack DeveloperNaucz się tworzyć bezpieczne systemy uwierzytelniania i autoryzacji, korzystając z Clerk. Pokażę Ci, jak to robić krok po kroku, aby Twoje aplikacje były bezpieczne i profesjonalne.
Zrozumiesz, jak skutecznie i bezboleśnie połączyć swoją aplikację Next.js z bazą danych PostgreSQL na DigitalOcean. Pokażę Ci, jak używać Prismy, aby ułatwić ten proces.
Dowiesz się, jak zarządzać routingiem i nawigacją w swojej aplikacji, aby użytkownicy mogli łatwo i intuicyjnie poruszać się po Twojej stronie.
Pokażę Ci, jak z łatwością wdrożyć swoją aplikację na Vercel, jednym z najpopularniejszych środowisk hostingowych dla aplikacji Next.js.
Nauczysz się zarządzać stanem aplikacji i jak wykorzystać server actions w praktyce, co pozwoli Ci na tworzenie bardziej zaawansowanych i dynamicznych funkcji.
Ten kurs jest dla osób, które już mają pewne doświadczenie z JavaScript i chcą zgłębić swoje zrozumienie Next.js. Zakładamy, że znasz podstawy TypeScript, TailwindCSS, ale nie potrzebujesz doświadczenia z Next.js - wszystko wyjaśnię Ci od podstaw!
Bazowy routing naszej aplikacji mamy już za sobą.
Teraz zajmiemy się autoryzacją i uwierzytelnianie użytkowników.
Do tego celu wykorzystamy gotowe rozwiązanie w postaci Clark.
Pewnie przyjdzie Ci na myśl jedna rzecz,
że generalnie korzystając z gotowych rozwiązań, całe dane naszych użytkowników
pozostają po stronie dostawcy danego rozwiązania.
Jest to w tym przypadku jak najbardziej prawda.
Natomiast dlaczego korzystamy tutaj z gotowego rozwiązania?
Po pierwsze, budowanie swojego rozwiązania
do autoryzacji autentykacji użytkowników byłoby naprawdę czasochłonne.
Prawdopodobnie nie zmieścili byśmy się
tutaj w ramach naszego kursu czasu przeznaczonego na ten kurs.
Po drugie ja jestem fanem wykorzystywania gotowych rozwiązań na początku pisania czy
to Twojego startupu, czy to swojego swojej aplikacji.
Dlatego, że generalnie na początku staramy się integrować, dość
szybko pokazywać nowe funkcjonalności naszym użytkownikom i zbadać, czy
rzeczywiście jest zapotrzebowanie na nasz produkt.
Dlatego też staram się właśnie pokazać tą
drogę, którą wykorzystujemy gotowe rozwiązania.
Natomiast jeżeli chodzi o ten minus, który przytoczyłem na początku, czyli
dane naszych użytkowników są zapisywane po stronie Clark.
Nie jest to do końca minus w tym
przypadku, bo pokażę Ci sposób w jaki możesz za pomocą web kroków, które są
dostarczane do tej aplikacji Clark Web póki możesz wykorzystać do tego, żeby w
momencie, kiedy jest zakładane konto po stronie właśnie Clark konto użytkownika.
Jeżeli ktoś nowy loguje się do Twojej aplikacji.
Możesz do tego wykorzystać Web Kuki, żeby w tym samym czasie zapisać czy to ID
danego użytkownika, stworzyć nową encje użytkownika w Twojej bazie danych.
Generalnie finalnie nie będzie się to za dużo różniło, poza tym, że masz tutaj
fajne rozwiązanie, które pozwoli Ci zarządzać tymi użytkownikami.
Łatwo ich banować, łatwo ich usuwać.
Natomiast jeżeli chcielibyśmy takie
rozwiązanie napisać samemu panel admina do naszej aplikacji,
to potrzebowalibyśmy znacznie dłuższego czasu niż jest to przewidziane.
Ten kurs także.
Przejdź sobie teraz do Dashboard, załóż sobie konto na.
Prawdopodobnie będziesz mógł się zalogować to git hubem czy kontem na google?
Jak przejdę sobie do dashboard tutaj,
no to tutaj jest moment, w którym możemy sobie stworzyć aplikację.
I generalnie rzecz biorąc jeżeli chodzi o
stworzenie aplikacji w Clark to nie jest to za bardzo skomplikowane.
Po prostu klikamy Add Application i wyskakuje nam taki pierwszy panel, w
którym musimy sobie wpisać nazwę naszej aplikacji.
A tutaj piszę do Web Pocket Cap.
I jeżeli chodzi o zaznaczone opcje jak chcemy
żeby nasi użytkownicy mogli się rejestrować w naszej aplikacji
to myślę, że email address jest najbardziej popularną opcją.
Ja dodaję jeszcze username i password, natomiast password
możemy sobie dodać za chwilkę w ustawieniach naszej aplikacji, że
username będzie mógł logować się za pomocą swojego swojego hasła.
Natomiast przy rejestracji użytkownika będziemy wysyłać kod do autentykacji.
Będzie to email wery fiction kod i tutaj
też dostarcza nam gotowe rozwiązanie do tego, żebyśmy mogli
taki kod wysyłać do naszych użytkowników i żeby mogli dostawać kod w momencie, w
którym będą rejestrować się naszej pracy aplikacji.
Zacznę sobie na razie te dwie opcje.
Wpisz sobie nazwę swojej aplikacji i klikamy Create application.
W tym momencie zostaniemy przeniesieni tutaj na dashboard.
Jak widzisz tutaj od razu mamy Quick Start Guide.
Jak?
W jaki sposób możemy sobie zrobić setup tej aplikacji I najpierw przejdziemy sobie
jednak tutaj do User authentication i sekcja Email Username.
Ja chcę żebyś miał tutaj zaznaczone właśnie te opcje, czyli username,
password, email, adres i email weryfikacja jak wygląda flow w tym momencie.
W momencie w którym użytkownik będzie rejestrował się na naszą aplikację, będzie
podawał swój adres email i nazwę użytkownika.
Generalnie będzie dostawał kod z
weryfikacji z kodem weryfikacyjne i w tym momencie będzie mógł sobie zalogować się
na swoje konto pierwszy raz ustawić swój password.
Za każdym kolejnym razem po zweryfikowaniu takiego konta
użytkownik już będzie mógł się logować swoją nazwą użytkownika i hasłem.
Przejdźmy teraz do etapu tego w naszej aplikacji, czyli wróćmy sobie jeden link
wcześniej, gdzie mieliśmy taki Quick Start Guide.
I mamy. Tutaj musimy sobie wkleić przede wszystkim
te dwa klucze, które mamy podane za pomocą właśnie twórców.
Tutaj bardzo łatwo możemy sobie zrobić kopię.
Ja sobie teraz zrobię kopi i przejdę sobie
do naszej aplikacji do pliku i wklejamy sobie nasz sekret.
Ze względu na to, że to są sekrety po
prostu zasłonie to nie będziesz widzieć dokładnie wartości.
Natomiast powinieneś mieć też trzy takie wartości w swoim pliku doc.
Mianowicie powinieneś mieć Next public publisher bloki.
I jeszcze krótki.
To powinny być trzy opcje, które na chwilę obecną powinieneś mieć w swoim pliku EMF.
Zamykamy nasz plik do TEN.
Wróćmy na nasze serca i dajemy Continue Index.
Mamy już wklejone to co potrzebujemy do autentykacji naszego użytkownika.
I teraz jeżeli chodzi o start z Nexto jest jest on bardzo prosty.
Musimy sobie tak naprawdę zainstalować paczkę o nazwie Clark Nexto.
Jest to teraz sobie zrobimy.
Ja sobie zmniejszę to okienko, a tutaj na lewą stronę damy sobie nasz terminal.
I w tym momencie wszystkie zmiany, które będziemy teraz wprowadzę związane z
autentykacji znajdziesz pod Branham w ficzer cloud.
Jeżeli utkniesz
po ostatniej lekcji, możesz się cofnąć na tamtą lekcję i zobaczyć sobie te zmiany.
Ja teraz sobie zainstaluje paczkę tle.
Jest kolejną rzeczą jak zainstalujemy paczkę.
Mamy dodanie naszych kluczy.
Klucze już sobie dodaliśmy.
Teraz musimy zamontować provider.
W naszej aplikacji
jest to pokazane żeby to zrobić w pliku głównym naszym Apple Route.
Natomiast my sobie możemy też stworzyć plik provider, który będzie do tego, żeby
robić wszystkie nasze provider, które będziemy używać w naszej aplikacji.
Lubię tę konwencję z tego względu, że
później mam jedno miejsce, w którym mam wszystkie swoje providerów.
Natomiast my, żeby po prostu utrzymywać wszystko jak najprościej,
kopiujemy sobie rozwiązanie, które tutaj jest dane nam przez twórców, czyli
opracujemy sobie w naszym layoucie klik liderem save body naszych stron,
czyli przejdziemy do naszego edytora kodu i mamy tutaj nasz główny layout.
Musimy sobie ten HTML teraz opakować w provider.
Jeżeli wszystko sobie zrobiliśmy dobrze,
to jesteśmy w stanie teraz zaimportować ten provider.
Zmian jeszcze się nie propagowała, dlatego też wróćmy do dokumentacji.
Powinniśmy sobie zaimportować ten provider właśnie z paczki sklep.
Zapiszemy sobie nasze zmiany i wszystko jest w porządku.
Mamy już przygotowaną naszą aplikację do tego, żeby korzystać z sesji.
I teraz, żeby
chronić naszą aplikację, musimy sobie zrobić numer, który będzie odpowiadał
odpowiedzialny za to, żeby przekierowywać użytkowników, którzy wskoczą na naszą
stronę do odpowiednich stron, które nie są chronione.
Dlatego też musimy sobie stworzyć plik TTS.
Zróbmy to teraz w lutowym folderze tutaj naszego projektu.
W folderze root tworzę sobie metody over this i tutaj do tego middleware możemy
sobie na chwilę obecną wkleić przykładową wartość.
W tym momencie możemy przejść do budowy Sign in Inside page.
Natomiast jeszcze zanim zaznaczymy sobie tutaj Web app
za pomocą konfiguracji jakie luty będą otwartymi wrotami, jakie będą zamknięte.
Bo tak jak mówiłem w poprzedniej lekcji,
jeżeli chodzi o wszystkie marketing pages, chcemy żeby one było otwarte.
Nie jest potrzebne logowanie się, zakładanie konta.
Chcemy umożliwić użytkownikom, którzy
odwiedzają naszą aplikację, żeby mogli sobie poczytać na temat ficzerów, zobaczyć
z czym to się je, do czego jest nasza aplikacja potrzebna.
Dlatego teraz tutaj dodamy sobie odpowiednią konfigurację i zaznaczymy,
które roboty są zamknięte, które są otwarte.
I tutaj możemy sobie stworzyć kontekst
public cross i to w formie tablicy robotów, które są publiczne, publiczne.
Możemy sobie zrobić coś takiego jeszcze.
Chcemy, żeby blog był ruchem publicznym w naszym przypadku, bo póki co w Marketing
mamy stronę, blog i główną stronę naszej aplikacji.
Zapiszemy sobie to teraz tutaj.
I żeby to użyć to musimy zrobić Export
Default out middleware i tutaj jako opcję musimy sobie podać public rules.
W tym momencie mówimy
Jarkowi, że słuchaj, te tutaj route nie są wrotami od których wymaga.
Wymagamy zakładania konta, tylko to są
publiczne roboty, które generalnie powinny funkcjonować zawsze,
niezależnie od tego, czy użytkownik jest zalogowany czy nie.
Sprawdźmy sobie już teraz, czy dostajemy
feedback od Jarka w naszej aplikacji i uruchomimy sobie naszą aplikację NPM.
Rundę mamy na localhost 3000.
Odpalamy naszą aplikację localhost 3000 i zobaczymy czy generalnie na robocie nie
powinniśmy dostać żadnego tutaj żadnej informacji.
Natomiast jeżeli spróbujemy sobie przejść
na dashboard to już powinniśmy dostać jakiś błąd.
Jesteśmy przekierowany na domyślny, jakby domyślną stronę, która pozwala nam zrobić
sign in naszego użytkownika i to jest jako domyślny adres tutaj.
Zobaczmy ten adres.
Generalnie to jest.
To jest adres, który jest wygenerowany dla nas przez kler.
Natomiast my sobie zrobię swoje sign sign up.
I tym zajmiemy się teraz w kolejnej części.