Meteor accounts-google 内部服务器错误,适用于本地但不适用于 EC2
Meteor accounts-google internal server error, works on local but not on EC2
你好 Whosebug 社区,我有一个关于 google 登录 Meteor 的问题。
登录流程在 localhost 中运行良好,但在 deploy 中运行不正常。
我在 Meteor 的控制台上收到以下错误:
Exception while invoking method 'login' Error: Failed to complete OAuth handshake with Google. failed [400] { "error" : "redirect_uri_mismatch" }
at getTokens (packages/google/google_server.js:59:1)
at Object.ServiceConfiguration.configurations.findOne.service [as handleOauthRequest] (packages/google/google_server.js:10:1)
at OAuth._requestHandlers.(anonymous function) (packages/oauth2/oauth2_server.js:8:1)
at middleware (packages/oauth/oauth_server.js:173:1)
at packages/oauth/oauth_server.js:146:1
这是我当前的故障排除清单:
1.- 使用 loginStyle 'popup'
更正 db.meteor_accounts_loginServiceConfiguration 上的客户端 ID 和客户端密码
2.- redirect_uri 在弹出窗口打开时设置为正确的端点 (http://example.com/_oauth/google)。
3.- 在 google 的控制台
上应用重定向授权的重定向 uri
我的观察之一是,如果将 loginStyle 更改为重定向而不是弹出,在 google oauth 重定向到我的 redirect_uri 之后,我的 redirect_uri 再次重定向到本地主机而不是经典的*/_oauth/googlewindow(登录完成,点此关闭window。)
编辑
出现的另一个错误是:
Error in OAuth Server: redirectUrl (http://example.com/users) is not on the same host as the app (http://localhost:80/)
所以应用程序拒绝 redirectUrl(该域有一个 A 记录到我的亚马逊 ec2 实例的弹性 IP),我 运行 在端口 80 上仅用于测试目的
检查环境变量 $ROOT_URL 的设置。如果设置不正确,这可能会影响预期的重定向 URL。
我使用带有 google oauth 的弹出窗口并在我的授权重定向 URI 中使用此字符串:
http://example.org
http://example.org/_oauth/google?close
编辑:
即使我将 ROOT_URL 设置为环境变量,Meteor 也没有使用我的 ROOT_URL。
解决方案是 运行 meteor 为:
$ ROOT_URL='https://example.org' meteor
你好 Whosebug 社区,我有一个关于 google 登录 Meteor 的问题。
登录流程在 localhost 中运行良好,但在 deploy 中运行不正常。
我在 Meteor 的控制台上收到以下错误:
Exception while invoking method 'login' Error: Failed to complete OAuth handshake with Google. failed [400] { "error" : "redirect_uri_mismatch" }
at getTokens (packages/google/google_server.js:59:1)
at Object.ServiceConfiguration.configurations.findOne.service [as handleOauthRequest] (packages/google/google_server.js:10:1)
at OAuth._requestHandlers.(anonymous function) (packages/oauth2/oauth2_server.js:8:1)
at middleware (packages/oauth/oauth_server.js:173:1)
at packages/oauth/oauth_server.js:146:1
这是我当前的故障排除清单:
1.- 使用 loginStyle 'popup'
更正 db.meteor_accounts_loginServiceConfiguration 上的客户端 ID 和客户端密码2.- redirect_uri 在弹出窗口打开时设置为正确的端点 (http://example.com/_oauth/google)。
3.- 在 google 的控制台
上应用重定向授权的重定向 uri我的观察之一是,如果将 loginStyle 更改为重定向而不是弹出,在 google oauth 重定向到我的 redirect_uri 之后,我的 redirect_uri 再次重定向到本地主机而不是经典的*/_oauth/googlewindow(登录完成,点此关闭window。)
编辑 出现的另一个错误是:
Error in OAuth Server: redirectUrl (http://example.com/users) is not on the same host as the app (http://localhost:80/)
所以应用程序拒绝 redirectUrl(该域有一个 A 记录到我的亚马逊 ec2 实例的弹性 IP),我 运行 在端口 80 上仅用于测试目的
检查环境变量 $ROOT_URL 的设置。如果设置不正确,这可能会影响预期的重定向 URL。
我使用带有 google oauth 的弹出窗口并在我的授权重定向 URI 中使用此字符串:
http://example.org
http://example.org/_oauth/google?close
编辑:
即使我将 ROOT_URL 设置为环境变量,Meteor 也没有使用我的 ROOT_URL。
解决方案是 运行 meteor 为:
$ ROOT_URL='https://example.org' meteor