14

我正在尝试设置我的 Meteor 应用程序以使用 Google 登录,这是我在 /server/config.js 文件中的设置

Accounts.loginServiceConfiguration.remove({
service: "google"
  });


Accounts.loginServiceConfiguration.insert({
service: "google",
clientId: "XXXXXXX",
secret: "XXXXXX"
  });

我在 google 上的设置指向 localhost:3000 我在我的流星应用程序上安装了 accounts-ui 和 accounts-google。

我在我的应用主页上看到了谷歌登录按钮,但是当我点击它时,我得到:

Error: redirect_uri_mismatch The redirect URI in the request: 
http://localhost:3000/_oauth/google?close 
did not match a registered redirect URI
4

4 回答 4

7

我正在使用 Nitrous.io,因为我在 Windows 上进行开发。这篇文章解释了为什么 google 会看到错误的 URI。

https://github.com/shoebappa/vagrant-meteor-windows/issues/9

基本上,您需要使用修改后的 ROOT_URL 启动流星,这样它就不会以 localhost 开头。

将 localhost.meteor.com 替换为实际运行流星的 URL。ROOT_URL= http://localhost.meteor.com流星

于 2014-04-08T21:02:52.923 回答
6

您必须使用 Google 的 API 控制台注册重定向 URL。登录到控制台并检查设置的重定向 URI。必要时添加本地主机

更新:

我自己尝试过并添加了

 http://localhost:3000/_oauth/google?close 

在 API 控制台中。我在 Hello World 应用中添加了accounts-google 和accounts-ui,并在页面中添加了登录按钮

<body>
    {{loginButtons}}
    {{> hello}}
</body>

我同意弹出窗口中请求的权限并已登录。

于 2013-07-31T12:13:43.453 回答
2

另一个想法:您是否删除了自动发布?如果是这样,您必须发布 userData,以便您的客户端可以访问用户。

于 2013-08-24T22:28:15.677 回答
1

我在https://gotlog.in上遇到了同样的问题 当我将https://gotlog.in/_oauth/google?close作为回调 URL 时,它值得:

  1. 那是一个错误。错误:invalid_client 没有应用程序名称

正如设置弹出窗口中所说的那样,当我将良好的回调(https://gotlog.in/_oauth/google)返回时,我得到了相同的结果:

  1. 那是一个错误。错误:redirect_uri_mismatch 请求中的重定向 URI:https ://gotlog.in/_oauth/google? close 与注册的重定向 URI 不匹配。

我的根 URL 已设置且有效,但我没有发布用户数据。但是文档说:“默认情况下,当前用户的用户名、电子邮件和个人资料都会发布给客户端。”

编辑:在这里找到解决方案:https ://github.com/meteor/meteor/issues/2717

我错过了 api 控制台中的同意屏幕信息。是的,回调 URL 最后必须有“?关闭”。万岁流星 =)

于 2014-09-27T19:55:45.583 回答