Как бороться с GET-параметрами фрагмента в Vue Router? - PullRequest
0 голосов
/ 01 июня 2018

После попытки серверной реализации OAuth Gitlab с использованием потока веб-приложений я пробую неявное предоставление в своем интерфейсе Vue.

Код доступа, который посылает мне API, находится в формате параметра фрагмента URL.Это означает, что вместо стандартного ?foo=bar&moo=var используется символ хеша #foo=bar&moo=var, который конфликтует с конфигурацией Vue Router по умолчанию.

После попытки режим истории в Vue Router, который не использует# в его URL я могу получить доступ к параметру Vue Router с помощью $route.hash.Моя текущая проблема заключается в том, что я должен сам разделить и обрезать параметры следующим образом:

const params = this.$route.hash.split('&').map(part => part.replace(/#/, ''));
const parsedParams = {};
params.forEach(param => {
  const parts = param.split('=');
  parsedParams[parts[0]] = parts[1];
});

, который выводит { foo: "bar", moo: "var" }

Есть ли лучший или более стандартный способ решенияс параметрами фрагмента в VueRouter?Если нет, то есть ли стандартное решение для этого за пределами Vue?

1 Ответ

0 голосов
/ 04 июня 2018

Мне кажется, что мой фрагмент кода является достаточно хорошим решением, хотя я ожидал некоторой поддержки стандартов OAuth в vue.Может быть, мои ожидания слишком высоки?

Это то, что я в итоге использовал

const parsedParams = {};
this.$route.hash.split('&')
  .map(part => part.replace(/#/, '')
  .forEach(param => {
    const parts = param.split('=');
    parsedParams[parts[0]] = parts[1];
  });
...