我正在尝试设置我的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
答案 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作为回拨网址时,它值得:
当我按照设置弹出窗口中的说法回拨(https://gotlog.in/_oauth/google)时,我得到了同样的信息:
我的根网址已设置且有效,但我没有发布userData。但是文档说:“默认情况下,当前用户的用户名,电子邮件和个人资料都会发布到客户端。”
我错过了api控制台中的同意屏幕信息。是的回调网址必须在结尾处有'?close'。 Viva Meteor =)