0

我在 Vue 上有一个带有 vue-router 导航的站点,它需要与谷歌驱动器一起使用。我已经在谷歌开发者的控制台中设置了应用程序,令牌 uri,它可以自己正常工作:

https://accounts.google.com/o/oauth2/v2/auth?response_type=token&client_id=668711006022-7igan4in4ob7ngtsmqjh8ld7j8hs5t16.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Ftwine.teivaz.com/auth&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive

但是在集成到 vue-router 导航时,我遇到了一个问题。在向 google ouath2 服务器发出请求后,它会将我重定向到指定地址,并在 url 参数中使用令牌,如下所示:

http://twine.teivaz.com/auth#access_token=ya29.Ci8o1gdfpkN51F3yjAbW-v9r-JN9YD3ze5B2123rvv62KuFc5b1OgzF-9XQ&token_type=Bearer&expires_in=3600

我想出了几个解决方案:

  1. 设置授权重定向 URI 以匹配 vue-router 的格式,以简单地读取为参数,如下所示:

    http://twine.teivaz.com/#!/login/
    

    但是谷歌控制台不允许我这样做给消息

    无效重定向:http ://twine.teivaz.com/#!/login/不能包含片段。

    在此处输入图像描述 看来我无法通过第一种方法将我的 vue 可读 URI 粘贴到谷歌控制台中。它应该是这样还是控制台中的错误?

  2. 从默认页面的 url 捕获令牌。但是在 vue-router 中,我有一个默认重定向,它会删除所有参数:

    TwineRouter.redirect({
        '*': '/stories'
    });
    

    它应该存在于所有不带参数的 url。

    有没有办法在重定向发生之前解析参数并在参数中没有标记的所有情况下保持行为?

  3. 创建另一个页面,该页面将简单地将令牌保存到 cookie 并重定向到索引。并在谷歌控制台中进行设置:

    http://twine.teivaz.com/login.html
    

    这个选项似乎是一个糟糕的设计,但它实际上可能有效。它是给定的最佳选择吗?有什么我错过的吗?

4

1 回答 1

1

我觉得有点晚了,但你可以使用

mode: 'history' 

在 vue-router 中,这消除#了 URL 中的东西。

http://router.vuejs.org/en/essentials/history-mode.html

于 2017-02-28T17:19:55.803 回答