2017-10-11 413 views
0

我无法为我的Meteor应用程序配置Google OAuth。如何解决Google OAuth“redirect_uri_mismatch”错误?

几周前,当它成功完成时,我成功地完成了它,但现在突然间,我似乎无法正确配置它。

我已经隧道通过ngrok我的应用程序。我会一步一步给你说明我如何去设定这一点。请指出做错了什么,以及我能做些什么来纠正这一点。

我开始在我的终端。我用火起来的应用:

meteor --port 7000 

我打开另一个终端和火起来ngrok使用:

./ngrok http 7000 

这就产生

ngrok starts a tunnel to my app

在我Meteor.startup我添加以下代码:

../clien T/main.js

Meteor.startup(function() { 
    // Client startup method. 

    METEOR_OFFLINE_CATALOG=1; 
    METEOR_PROFILE=1; 

    Meteor.absoluteUrl.defaultOptions.rootUrl ='http://41958975.ngrok.io'; 
    // 
}); 

在我的浏览器控制台时,I型:

Meteor.absoluteUrl() 

我得到 The response I get in my browser console showing the absoluteURL

我现在http://41958975.ngrok.io链接粘贴到浏览器,并得到这个:

The entry point into the configuration of google OAuth

单击按钮后跟:

the configuration of google AOuth

由于1到5之前已经完成的步骤,我直接跳到步骤6,7和8。

The results of configuring steps 6, 7 and 8

...并通过粘贴客户端ID和客户端完成秘密

The complete filled in configuration form

然后点击保存配置。结果是:

a successful configuration

现在,当我在与谷歌按钮点击标志:此弹出,就像它应该发生的。

enter image description here

我点击的帐户选项之一。这就是一切都会变成现实!我重定向回在与谷歌按钮(登录页面)与显示

Internal error message

此错误消息望着终端,我也收到此错误信息:

terminal error message

我似乎无法超越这一点。 我在做什么错,我怎么能超越这一点?

期待您的帮助。

+0

好像你已经有这个问题:https://stackoverflow.com/questions/39860152/how-do-use-ngrok-在-结合与 - 谷歌-的OAuth – Styx

回答

0

当您运行应用程序时,忘记修改ROOT_URL。你最后的屏幕截图的第一行清楚地表明它:

App running at: http://localhost:7000/

设置absoluteUrl客户不会帮助,因为它是你的服务器谁试图获得令牌。

uses OAuth._redirectUri() function得到redirect_uri,和那里的Meteor.absoluteUrl() is used(它从ENV变量ROOT_URL,如documentation说明)。

因此,你的redirect_uri变得http://localhost:7000/_oauth/google显然与http://41958975.ngrok.io/_oauth/google(步骤#7)的错配。

为了解决这个问题,你应该这样开始你的流星应用:

ROOT_URL="http://41958975.ngrok.io" meteor 
相关问题