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

Vue - zmiana widoku dla zalogowanych

Object Storage Arubacloud
0 głosów
68 wizyt
pytanie zadane 15 października 2021 w JavaScript przez cava96 Gaduła (3,940 p.)
Cześć,

jestem początkujący w Vue i potrzebuję pomocy. Mój problem polega na tym, że chciałbym wyświetlać inną zawartość aplikacji dla zalogowanych użytkowników, a inną dla niezalogowanych. Na backendzie korzystam z .NET Core i Identity, a zaimplementowana autoryzacja jest na standardowych ciasteczkach. Do sprawdzenia czy ktoś jest zalogowany służy mi jeden endpoint, który zwraca 200 gdy się jest autoryzowanym użytkownikiem, bądź 401 gdy się nim nie jest. Zrobiłem tak, ponieważ wyczytałem, że rzekomo nie można otwierać po stronie przeglądarki ciasteczek, które są ustawione HTTP Only=true. W jaki sposób w Vue, mógłbym zrobić tak, żeby z automatu (coś na zasadzie middleware) podmieniało mi widok w zależności od wyniku funkcji sprawdzającej status zalogowania ?

1 odpowiedź

+1 głos
odpowiedź 15 października 2021 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 15 października 2021 przez cava96
 
Najlepsza

Skoro backend zwraca odpowiedni status, to najprostsze wydaje się skorzystanie z warunkowego renderowania w Vue (tu dla wersji v3).

komentarz 15 października 2021 przez cava96 Gaduła (3,940 p.)

Też już o tym myślałem, tylko zbytnio nie wiedziałem w którym miejscu to dodać. Tak czy siak działa tak jak chciałem, dzięki.

 

Dla potomnych: rozwiązaniem jest dodanie <script> i odpowiedniej metody w pliku, który jest importowany do main.js (w moim przypadku App.vue). Przykład:

<template>
  <div>
    <div class="nav" v-if="isOnline() === false">
      <router-link to="/">Home</router-link> |
      <router-link to="/login">Logowanie</router-link> |
      <router-link to="/register">Rejestracja</router-link>
    </div>
    <div class="nav" v-else>jestem zalogowany</div>
    <router-view />
  </div>
</template>

<script>
import axios from "axios";
axios.defaults.withCredentials = true;

export default {
  methods: {
    isOnline: function () {
      axios
        .get(
          "https://" + process.env.VUE_APP_API_ADDRESS + "/api/account/online"
        )
        .then((response) => {
          if (response.status === 200) {
            return true;
          } else {
            return false;
          }
        })
        .catch((e) => {
          return false;
        });
    },
  },
};
</script>

 

Podobne pytania

0 głosów
1 odpowiedź 288 wizyt
pytanie zadane 1 czerwca 2018 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)
0 głosów
1 odpowiedź 237 wizyt
pytanie zadane 29 kwietnia 2019 w JavaScript przez ShiroUmizake Nałogowiec (46,300 p.)
0 głosów
0 odpowiedzi 132 wizyt
pytanie zadane 27 grudnia 2017 w JavaScript przez ShiroUmizake Nałogowiec (46,300 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...