Как сохранить пользовательские данные в магазине Vuex, используя библиотеку OID C JS? - PullRequest
0 голосов
/ 02 марта 2020

Эта библиотека имеет настройку userStore , которая позволяет вам выбрать, где сохранить вашего пользователя. Прямо сейчас я хочу сохранить моего пользователя в Vuex store , но я не могу поместить туда свое состояние, потому что вам не разрешено изменять хранилище напрямую, и вы должны вместо этого использовать мутации. Так что мне нужно сделать что-то вроде:

this.$store.dispatch('saveUser', userData);

Так что это дает мне две проблемы в основном:

  1. Я должен использовать функцию , но userStore ожидает объект . Я думаю, что могу обойти это с помощью некоторого объявления класса, например:
class SaveUser {
  constructor(store, user) {
    store.dispatch('saveUser', user);
  }
}

и передачи нового SaveUser справа от userStore, затем:

  post_logout_redirect_uri: redirectUri,
  redirect_uri: `${redirectUri}/callback`,
  response_mode: 'query',
  response_type: 'code',
  scope: 'openid profile',
  userStore: new SaveUser(this.$store, user);

немедленно вызвать функцию конструктора и, таким образом, решить проблему с необходимым объектом, хотя выполнение этого сразу вызовет новые проблемы, поскольку я сейчас использую new для побочных эффектов, но даже тогда возникает вторая проблема:

Теперь мне нужно как-то передать эти данные пользователя , НО они никогда не появляются явно:
userStore: new SaveUser(this.$store, user);

Можете ли вы предложить мне сделать это более или менее идиоматически?

...