Wpis z mikrobloga

#programowanie #angular #javascript
Podpowie ktoś jak ogarnąć routing dla takiego przypadku?
1. User niezalogowany otwiera główny adres strony - pojawia się widok dostępny dla użytkowników niezalogowanych, dopiero próba jakiejś akcji lub bezpośrednie kliknięcie w przycisk do zalogowania powoduje odpalenie strony logowania
2. User niezalogowany otwiera dokładniejszy adres tj. główny adres wraz z podstroną - wtedy od razu wyświetla się strona logowania

Nie przemyślałem tego kejsa i robiłem w głównej metodzie sprawdzanie czy jest isAuthenticated i jeśli nie to router.navigate['/public'], a przecież nie w każdym przypadku chcę to robić - w drugim przedstawionym przypadku to jest niepożądane. Rozwiązanie gdzie sprawdzam URL czy nie ma podstrony chyba nie jest zbyt optymalne i pewnie da się to ogarnąc za pomocą routingów?
Dominias - #programowanie #angular #javascript
Podpowie ktoś jak ogarnąć routing dla...

źródło: comment_1659201113puPlsMz7EXplLIYtVROwLN.jpg

Pobierz
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ChartWuja: tylko, że to bardziej chodzi o taki case, że path jest ten sam, ale redirectTo jest różne, coś na takiej zasadzie:

{path: '', redirectTo: isAuthenticated ? '/feed' : '/public', pathMatch: 'full'},
  • Odpowiedz
@Dominias: wydaje mi sie, ze coś przekombinowujesz.
Z tego co rozumiem, chcesz, żeby na główna stronę dało się wejść, ale nie na inne routy, więc zrób roota do głównej strony bez guarda, a resztę zabezpiecz za pomocą canActivate
  • Odpowiedz
@ChartWuja: bo chodzi o to, że główna strona dla zalogowanego użytkownika jest zupełnie inna od tej którą ma widzieć niezalogowany, to są dwa różne pathy. Więc jak w sesji user jest zalogowany i w klepie www.glownastrona.pl to leci redirect na /podstrona1, a jak niezalogowany to /podstrona2
  • Odpowiedz
@Dominias: no mniej wiecej. Mozesz założyć guarda nawet na path: '' i tam handlować odpowiednie przekierowania. Jak w guardzie zwrócisz UrlTree to cię znawiguje pod pożądany url. Musisz pokombinować Mireczku.
  • Odpowiedz
@Dominias: a nie, czekaj... inaczej to ogarnij...
Zrób sobie path: '' i do niego zapnij LoginGuard, nie dawaj natomiast redirectTo: ''
W samym guardzie w metodzie canActivate sprawdź czy user jest zalogowany i jeśli tak to przekieruj go pod url1 a jak nie to pod url2
  • Odpowiedz