使用Web应用程序流尝试Gitlab's OAuth的后端实现后,我在我的Vue前端尝试了隐式授权。
API发送给我的访问代码是片段url参数格式。这意味着它使用哈希符号#foo=bar&moo=var
而不是标准?foo=bar&moo=var
,它与默认的Vue路由器配置冲突。
在Vue路由器中尝试history mode后,我可以在其网址中使用#
,我可以使用$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之外是否有一个标准的解决方案?
答案 0 :(得分:2)
在我看来,我的代码片段是一个足够好的解决方案,尽管我期待在vue中支持OAuth标准。也许我的期望太高了?
这就是我最终使用的
const parsedParams = {};
this.$route.hash.split('&')
.map(part => part.replace(/#/, '')
.forEach(param => {
const parts = param.split('=');
parsedParams[parts[0]] = parts[1];
});