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!
Jeżeli chodzi o komponent z dwoma guzikami
to logowania się i to zakładania konta to chciałbym żeby
logika była taka, że jeżeli użytkownik jest zalogowany to chcemy mu
pokazać tutaj guzik z jego kontem z możliwością modyfikacji jego konta.
I tak się składa, że CLR dostarcza nam komponent o nazwie User
button, który pozwala nam wchodzić w interakcje z kontem danego użytkownika.
Użytkownik ma możliwość tam zmiany różnych
opcji, dlatego teraz wykorzystamy ten komponent.
Zacznijmy od tego, że będziemy mieć tutaj osobnego diva w tej nawigacji.
I tutaj generalnie rzecz biorąc chcemy mieć dwie rzeczy.
Na pewno chcemy sprawdzić, czy użytkownik jest zalogowany, czyli jest signed in.
Zrobiłem sobie dwukrotnie dwukropek i jest git.
Musisz skądś pochodzić.
Generalnie rzecz biorąc kler wykorzystuje do tego huki.
I w tym momencie potrzebujemy Chucka.
Juz uzyl const i signed in.
I tutaj jako Chuck użyjemy juz use.
To jak widzisz pochodzi z kleryka.
I jest jeden problem.
Mianowicie dostaniemy.
Może najpierw sobie montujemy to wszystko? I zobacz.
A tamten to juz Józef from the server to on the client.
Czyli jak wiesz domyślnie komponenty w next są komponentami po stronie serwera.
Dlatego prawdopodobnie tutaj nasze guziki dobrze byłoby zrobić jako osobny
komponent, jako komponent po stronie klienta.
I to sobie teraz właśnie zrobimy.
Stworzymy.
W katalogu głównym zrobimy sobie katalog komponent.
Tutaj stworzymy nowy komponent.
Niech to będzie komponent o nazwie Homepage Buttons tez X.
I tutaj już będziemy mogli sobie użyć
naszego komponentu Homepage patrząc czy eksport.
Home Page buttons.
Niech to będzie zwyczajna funkcja.
Tutaj w środku będziemy potrzebowali
logiki naszej funkcji, czyli kopiujemy użycie naszego kółka.
Wyrzucimy to stąd? Kopiujemy.
Tutaj.
Generalnie rzecz biorąc musimy oczywiście
zamienić ten komponent w komponent po stronie klienta, czyli w Next.
Robimy to za pomocą US Klient.
Zapiszemy sobie.
Musimy zaimportować znowu sobie tego hooka tutaj.
I tutaj od razu postaramy się wrzucić ten nasz nowy komponent Homepage Buttons.
Zapiszemy to sobie.
Ten kupisz możemy stąd wrzucić.
I tak na razie nie mamy żadnych, żadnych
elementów, które tutaj sprawia nam problemy.
Musimy sobie coś zrzucić z tego komponentu.
Czy zrobimy sobie return?
I otworzymy.
Nawet teraz potrzebujemy TÜV, który będzie
wydawał nasze, nasze batony, nasze linki tutaj.
Teraz w środku chcemy otworzyć logikę dla
nas, żeby sprawdzić, czy użytkownik jest zalogowany.
Jeżeli jest zalogowany,
to chcemy mu zwrócić komponent w postaci takiej, że mamy tutaj
jeden link to będzie link to do strony Dashboard.
Tak to jest user jest zalogowany, chcemy
mu pokazać link do strony Dashboard, czyli możemy sobie spokojnie sobie zrobić.
Zobacz, mamy statycznie typowane linki, możemy zaznaczyć dashboard i podpisać też.
Dashboard to będzie jeden link, który user będzie miał dostępny oczywiście tutaj.
W drugim przypadku na razie sobie zrobimy, żeby nie mieć tutaj błędu.
Natomiast jako że nasz user nie jest
zalogowany na chwilę obecną tutaj nie dostajemy jeszcze nic.
Natomiast jeszcze wróćmy do tego i drugim
komponentem, który będziemy chcieli pokazać to jest User Button i to jest
komponent, który pochodzi bezpośrednio z Clarka.
I jeżeli chodzi o prop, który chcemy mu
przekazać, to chcemy mu powiedzieć after sign na odwal, żebyśmy byli przekierowani
na na tą samą stronę, którą jesteśmy tutaj.
Generalnie rzecz biorąc teraz już po
zalogowaniu się powinniśmy mieć te dwa guziki widoczne.
Natomiast jeszcze sprawdźmy sobie tutaj, co będziemy wyświetlać
w momencie, w którym użytkownik nie będzie nie będzie zalogowany.
W tym momencie chcemy wyświetlić dwie rzeczy.
Chcemy wyświetlić sobie tutaj skopiuje ten link dwa linki.
Jeden niech będzie do założenia konta
Czytelnik to będzie sign up i tutaj możemy sobie popisać.
Oczywiście bez literówki od razu dostajemy ostrzeżenie.
Drugi link, który będzie tutaj, to musimy zrobić link do Sign in czyli Slash Sign.
Zapisujemy to sobie. Sprawdźmy co tutaj dostajemy.
Sign napis Not accessibility.
Tutaj mamy problem z malowaniem, że nie ma takich lutów.
To jest po prostu problem z tym, że
ta funkcjonalność statystycznie typowanych lutów jest cały czas w fazie beta.
Bo tak jak widzisz mamy tutaj dostępne tylko i wyłącznie te normalne luty.
Nie mamy tych cache.
Jest to spowodowane tym, że po prostu
mamy jeszcze catch on root, dlatego możemy to obejść.
Na chwilę obecną jesteśmy pewni, że te root istnieją.
Zapiszemy. Już pojawiły się nam dwa przyciski na
naszej stronie, które prowadzą do odpowiednich miejsc.
Mamy stronę sign up, mamy stronę Sign in.
Teraz sprawdźmy sobie logikę, czy rzeczywiście te przyciski zamienią się na
dashboard i na User button jeżeli się logujemy w naszej aplikacji.
W naszym przypadku przechodzimy do Sign in i tutaj wpisujemy nazwę użytkownika,
który jest w naszym systemie i hasło Logujemy się.
Zostajemy przeniesieni na dashboard.
Natomiast my nie chcemy sprawdzić też, bo
my chcemy sprawdzić jak wygląda teraz nasz home.
Jeżeli mamy aktywną sesję zobacz
mamy tutaj zera, możemy sobie zrobić Manage account i
w tym momencie możemy sobie sprawdzić aktywne sesje.
Możemy te sesje wyłączyć, możemy change
username, możemy nawet zmienić zdjęcie profilowe naszego użytkownika.
No to już karanie na chwilę obecną ustawie i mamy Kontynuuj finish.
Zdjęcie zostało datowane.
Nasz użytkownik od razu wygląda tak jak powinien wyglądać.
I teraz jeszcze co powinniśmy zrobić, to
powinniśmy sobie to tutaj fajnie wystylizować.
Czyli proste i niech to będzie flex items center i jakiś gap ustawimy na 4.
I jeszcze lepiej tutaj wygląda.
Możemy się wylogować.
Zostaniemy przeniesieni na tę stronę.
Guziki też są od siebie usunięte.
Tutaj mamy zakładanie konta.
Tutaj mamy sign in, czyli znowu logowanie się do naszego użytkownika.