我在 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
我想出了几个解决方案:
设置授权重定向 URI 以匹配 vue-router 的格式,以简单地读取为参数,如下所示:
http://twine.teivaz.com/#!/login/
但是谷歌控制台不允许我这样做给消息
无效重定向:http ://twine.teivaz.com/#!/login/不能包含片段。
从默认页面的 url 捕获令牌。但是在 vue-router 中,我有一个默认重定向,它会删除所有参数:
TwineRouter.redirect({ '*': '/stories' });
它应该存在于所有不带参数的 url。
有没有办法在重定向发生之前解析参数并在参数中没有标记的所有情况下保持行为?
创建另一个页面,该页面将简单地将令牌保存到 cookie 并重定向到索引。并在谷歌控制台中进行设置:
http://twine.teivaz.com/login.html
这个选项似乎是一个糟糕的设计,但它实际上可能有效。它是给定的最佳选择吗?有什么我错过的吗?