Meteor.js Google Oauth问题

时间:2013-07-31 02:27:55

标签: oauth meteor

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

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


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

我在google上的设置指向localhost:3000 我在我的流星应用程序上安装了帐户-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 个答案:

答案 0 :(得分:7)

我正在使用Nitrous.io,因为我在Windows上开发。本文解释了为什么谷歌会看到错误的URI。

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

基本上你需要使用修改后的ROOT_URL启动meteor,以便它不会以localhost启动。

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

答案 1 :(得分:6)

您必须使用Google的API控制台注册重定向网址。 Log on to the console并检查已设置的重定向URI。必要时添加localhost

<强>更新

我自己尝试了并添加了

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

在API控制台中。我将account-google和accounts-ui添加到Hello World应用程序并将登录按钮添加到页面

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

  1. 这是一个错误。 错误:invalid_client 没有申请名称
  2. 当我按照设置弹出窗口中的说法回拨(https://gotlog.in/_oauth/google)时,我得到了同样的信息:

    1. 这是一个错误。 错误:redirect_uri_mismatch 请求中的重定向URI:https://gotlog.in/_oauth/google?close与注册的重定向URI不匹配。
    2. 我的根网址已设置且有效,但我没有发布userData。但是文档说:“默认情况下,当前用户的用户名,电子邮件和个人资料都会发布到客户端。”

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

      我错过了api控制台中的同意屏幕信息。是的回调网址必须在结尾处有'?close'。 Viva Meteor =)