• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obsługa rejestrowania, logowania i czegoś w stylu panelu użytkownika na stronie.

0 głosów
57 wizyt
pytanie zadane 26 maja 2021 w JavaScript przez Spokoj Nowicjusz (180 p.)
Cześć. Tworzyłem sobie małą stronkę żeby uczyć się w ten sposób JS i podczas tego wpadłem na pomysł, że przydałby mi się jakiś backend i baza danych. Ogarnąłem jakieś podstawy podstaw, mam backend na node i bazę mongodb. Ogarnąłem sobie rejestrację bo to mi było potrzebne i zabierając się za logowanie dopiero zacząłem się zastanawiać jak to w sumie powinno wyglądać fachowo. Bo u mnie jest tak, że mam głowny folder z apką, W folderze mam folder html gdzie siedzi wszystko od frontu, główny pliczek node no i całą resztę do obsługi tego. I dalej wyobrażam to sobie tak, że w folderze html umieszsczę wszystkie strony które będą mi potrzebne, oddzielne dla osób zalogowanych i niezalogowanych, a po prostu za pomocą ciasteczek sesji będę dopuszczał/przekierowywał do konkretnych stron. Czy to ma sens? Bo wydaje mi się git, ale przy okazji mam wrażenie, że coś mocno psuję. Chodzi mi głownie o działanie zgodnie ze sztuką, żeby przy okazji nauki JS, nie uczyć się samego języka, ale dobrych zasad pisania i dzielenia kodu.

1 odpowiedź

+1 głos
odpowiedź 26 maja 2021 przez Wiciorny Mędrzec (196,740 p.)
czysta redundancja kodu - strony powinny być jednolite, a dostęp do sekcji np " dla zalogowanych" powinien być autoryzowany, wtedy jeżeli dany "user" jest autentyczny i został zweryfikowany, oraz posiada uprawnienia, to wtedy dla jego sesji - wyświetlane będą komponenty dostępne tylko dla zalogowanych, jeśli takowy nie  zgodził się np na cookies, czy jest niezalogowany to komponenty wymagające uprawnień powinny być "ukryte" niedostępne oraz wymagać

To co byś zrealizował wymagałoby "z każdym requestem klienta" sprawdzanie warunków czy ma on dostęp autoryzowany do zasobu i wtedy na bazie takich reguł zwracać byś musiał odpowiednie zawartości. Jeśli piszesz w nowych technologiach bazujac na single-page API to tym bardziej  łądujesz odpowiednie komponenty na jeden plik, i to logika reguł biznesowych decyduje o wyborze samych komponentów, a nie szablonów całej strony
komentarz 27 maja 2021 przez Spokoj Nowicjusz (180 p.)
Dziękuję za odpowiedź. A mógłbyś podsunąć jakieś sposoby na to ukrycie treści/komponentów? Po prostu JavaScriptem sobie kontrolować co ma się wyświetlać na danej stronie w zależności od ciasteczek? Tylko czy w takim przypadku to też nie będzie nadmiar JSa i nie da możliwości na "wkradnięcie" się użytkownika do części do której nie powinien mieć dostępu? Wybacz za takie laickie pytania, ale gotowych rozwiązań na zrobienie samego backendu rejestracji/logowania jest pełno, a jakiegoś materiału który by to trochę poruszał głębiej znaleźć nie mogę.
komentarz 27 maja 2021 przez krissto7 Gaduła (3,030 p.)
Jeśli np. po zalogowaniu dajesz ciastko to tak samo musisz zabezpieczyć request , który podsyła Ci htmla , czyli po wejściu na podstronę np. /home to sprawdzasz na początku czy istnieje ciastko odpowiadające za zalogowanie , jeśli istnieje to wysyłasz htmla , jeśli nie to musisz przekierować na podstronę z logowaniem , czyli res.redirect. Przynajmniej ja tak zrobiłem w swoim projekcie , a nie wiem na ile to 'profesionalne' rozwiązanie...
komentarz 29 maja 2021 przez Spokoj Nowicjusz (180 p.)

No to w takim przypadku jest oddzielna strona dla zalogowanych i niezalogowanych jak rozumiem. Np. ktoś wchodzi na główną stronę, jako że nie jest zalogowany to nie jest przekierowywany dalej. Loguje się i po zalogowaniu już dostaje przekierowanie na /home, a nie zostaje na tej głównej stronie, lub tak jak Ty piszesz, jeśli nie jest zalogowany, a wchodzi na /home to zostaje przekierowany na stronę logowania. Np. na facebooku jako niezalogowany wchodzę na facebook.com i wyświetla mi się panel logowania, po zalogowaniu dalej zostaję na facebook.com ale już normalnie widzę cały panel dostępny dla zalogowanych. Dużo nauki i zabawy przede mną. smiley

komentarz 29 maja 2021 przez krissto7 Gaduła (3,030 p.)
Dokładnie tak jak piszesz , akurat to jak zrobisz to już kwestia wytycznych , dla Ciebie najważniejsze jest zrozumieć ten cały proces i umieć to odtworzyć programistycznie. Sam jestem laikem , ale z tego co widzę to własnie dobrym przykładem jest facebook gdzie na https://www.facebook.com/ będąc niezalogowanym wyświetla się panel logowania , a będąc zalogowanym na tym url dostajesz zupełnie inny html.

Podobne pytania

+1 głos
1 odpowiedź 1,984 wizyt
pytanie zadane 17 kwietnia 2017 w JavaScript przez ShiroJavascript Nowicjusz (160 p.)
0 głosów
1 odpowiedź 245 wizyt
0 głosów
1 odpowiedź 74 wizyt
pytanie zadane 18 stycznia 2021 w JavaScript przez roadtosleep Nowicjusz (230 p.)

86,448 zapytań

135,207 odpowiedzi

300,348 komentarzy

57,196 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...