Сохранить статус аутентификации пользователя в состоянии vuex безопасно. Решение? - PullRequest
0 голосов
/ 12 марта 2020

Я смотрел различные видео по аутентификации spa vue. Все эти видео предоставили решение на основе vuex

Like this; Они создали функцию в методах получения, такую ​​как loggedIn , чтобы она возвращала статус аутентификации пользователя.

store. js

[...]

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

[...]

Панель инструментов. vue (это защищенный маршрут)

[...]

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

}

[...]

Все работает правильно, но я могу вручную изменить состояние с помощью инструментов vue dev, поэтому я могу ввести защищенный маршрут, чтобы аутентификация была не работает должным образом.

Мои вопросы:

  1. Может ли пользователь изменять состояние vuex в производственном режиме?
  2. Сохранить статус аутентификации пользователя в vuex - это безопасное решение?

1 Ответ

0 голосов
/ 12 марта 2020

Может ли пользователь изменить состояние vuex в производственном режиме?

Да, пользователь может сделать что-нибудь для состояния приложения. Вы можете запутать некоторые вещи, но не можете помешать пользователю проверить или изменить данные вашего приложения.

Сохранить статус аутентификации пользователя в состоянии vuex - это безопасное решение?

Это один из подходов, и я рекомендую его, особенно по мере роста размера вашего приложения, вам станет легче управлять общим состоянием в вашем приложении. Но я бы не сказал, что это «безопасно» или «небезопасно».

Я могу изменить состояние вручную с помощью инструментов vue dev, поэтому я могу войти в защищенный маршрут, чтобы аутентификация не работала должным образом.

Поведение приложения можно легко обойти, как вы уже описали. У вас есть только полный контроль над кодом сервера. Если защищенный маршрут становится доступным на клиенте из-за того, что пользователь подделал данные с помощью средств разработки, сервер должен отклонить любые запросы привилегированных данных, которые требуются для защищенного маршрута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...