这都是针对本地开发环境(在 OS X 中)的,我有:
- 带有虚拟主机的本地 nginx
- 应用程序在 myapp.dev 上正常运行(代理到 localhost:3000)
- 已创建 Google 应用
- ServiceConfiguration.configurations 正确设置服务、clientId、loginStyle 和 secret
但是当点击 Google 按钮登录时,我得到:
- That’s an error.
Error: redirect_uri_mismatch
Application: MyApp
You can email the developer of this application at: [email protected]
The redirect URI in the request: http://localhost:3000/_oauth/google did not match a registered redirect URI.
这在技术上是正确的,因为 Google 不接受为回调提供特定的 IP 地址(仅限 localhost
或某个域),因此我需要将其设置为回调 http://myapp。 dev/_oauth/google
这样我就可以从移动设备上使用它。
问题似乎与尝试重定向 localhost:3000 而不是 myapp.dev 的帐户有关
我不知道如何设置帐户来使用此域,或者也许是告诉 meteor 应用程序它应该使用 myapp.dev
域的全局方式
解决这个问题的方法是为 Meteor 移动应用程序设置任何开发环境。谢谢
最佳答案
google.js
使用 absoluteUrl()
创建回调 URL,因此在客户端启动时设置此参数应该会为您提供所需的回调:
Meteor.startup(function () {
// Client startup method.
Meteor.absoluteUrl.defaultOptions.rootUrl = 'http://myapp.dev/';
});
关于Meteor 移动应用程序为 Google OAuth 提供了 redirect_uri_mismatch,如何修复帐户 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31894134/