Oglądałem różne filmy na uwierzytelnianiu spa Vue. Wszystkie te filmy zapewniły rozwiązanie oparte na Vuex

Lubię to ; Utworzono funkcję w Galters, takich jak Rejestruj , że zwraca status uwierzytelniania użytkownika.

store.js

[...]

state:{
    token: null,
    user: null
},
getters: {
    loggedIn: (state) => {
        return state.token && state.user ? true : false
    },
},

[...]

Dashboard.vue (jest to trasa chroniona)

[...]

beforeRouteEnter (to, from, next) {
    if(store.getters.loggedIn)
        next()
    else
        next({ name:'login' })

}

[...]

Wszystko działa poprawnie, ale mogę zmienić stan ręcznie przez Vue Dev Tools, a więc mogę wprowadzić chronioną trasę, aby uwierzytelnianie nie działa poprawnie.

moje pytania:

  1. Czy użytkownik może zmodyfikować stan Vuex w trybie produkcyjnym?
  2. Zapisz status uwierzytelniania użytkownika w stanie Vuex to bezpieczne rozwiązanie?
0
Mahdi Rezaei 12 marzec 2020, 12:42

1 odpowiedź

Najlepsza odpowiedź

Czy użytkownik może zmodyfikować stan Vuex w trybie produkcyjnym?

Tak, użytkownik może zrobić wszystko do stanu aplikacji. Możesz zaciemnić kilka rzeczy, ale nie możesz uniemożliwić użytkownikowi inspekcji lub modyfikacji danych aplikacji.

Zapisz status uwierzytelniania użytkownika w stanie Vuex to bezpieczne rozwiązanie?

Jest to jedno podejście, a polecam to szczególnie, zwłaszcza, że rozmiar aplikacji staje się łatwiejsze do zarządzania państwem wspólnym w aplikacji. Ale nie powiedziałbym, że jest "bezpieczny" lub "niebezpieczny".

Mogę zmienić stan ręcznie przez narzędzia Vue Dev, więc mogę wejść do chronionej trasy, aby uwierzytelnianie nie działa poprawnie.

Zachowanie aplikacji można łatwo obchodzić się, gdy opisałeś. Masz pełną kontrolę nad kodem serwera. Jeśli chroniona trasa staje się dostępna na kliencie, ponieważ użytkownik manipulowany przez dane za pomocą narzędzi Dev, serwer powinien odrzucić wszelkie żądania o uprzywilejowane dane, które wymaga chronionej trasy.

0
Decade Moon 12 marzec 2020, 09:57