1

我有一个托管在http://localhost:4200的 SPA 我还有一个托管在http://localhost:1337 的 API

我的 SPA 使用 Torii 来处理流程,我取回了授权码,然后我尝试将其发送到我的服务器进行处理。

这是我在谷歌的配置:

谷歌 oAuth 配置

如您所见,我已经包含了所有可能的 URL,以防万一!

现在,当我将该授权代码传递给我的服务器进行验证然后为客户端提供一个会话时,我总是会返回redirect_uri_mismatch- 即使我可以在谷歌请求中看到 redirectUrl 正是 oAuth 配置页面中列出的内容:

http://localhost:1337/api/v1/auths/google_oauth2

我做错了吗?我是否应该能够从浏览器启动该过程,然后从服务器验证授权代码?

我可以确认 api 密钥和客户端 id 和密钥都是正确的。

[更新]

这是回购:https ://github.com/wayne-o/ember-waterlock-example

4

1 回答 1

0

为此,源和重定向 url 需要相同。正如我在 google 文档中所读到的那样,这很痛苦,您可以在可能托管在不同位置的各种应用程序“包”之间共享身份验证代码。

无论如何 - 为了使这项工作,您可以使用以下命令通过 ember 代理 API:

ember server --proxy http://localhost:1337

然后将所有内容配置为通过http://localhost:4200运行- 包括您在 google oauth 控制台上可能拥有的所有 URL。

从那以后,你所有最疯狂的梦想都会成真。

作为 AFAICS 这很蹩脚,这应该可以在不需要所有这些的情况下工作。

于 2015-09-23T10:19:22.327 回答