【发布时间】:2018-11-11 18:24:41
【问题描述】:
在尝试使用 Web 应用程序流实现 Gitlab's OAuth 的后端后,我正在我的 Vue 前端中尝试隐式授予。
API 发送给我的访问代码是片段 url 参数格式。这意味着它使用哈希符号 #foo=bar&moo=var 而不是标准的 ?foo=bar&moo=var,这与默认的 Vue 路由器配置冲突。
在 Vue 路由器中尝试 history mode 后,在他的 url 中使用了 #,我可以使用 $route.hash 访问 Vue Router 参数。我目前的问题是我必须自己拆分和修剪参数,如下所示:
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 之外是否有标准的解决方案?
【问题讨论】:
-
@samayo
$route.query仅适用于以?开头的参数
标签: vue.js oauth-2.0 gitlab vue-router