OAuth Google 回调抛出错误“与 localhost 的连接尝试被拒绝”

Posted

技术标签:

【中文标题】OAuth Google 回调抛出错误“与 localhost 的连接尝试被拒绝”【英文标题】:OAuth Google callback throws error "connection attempt to localhost was rejected" 【发布时间】:2016-01-30 01:59:33 【问题描述】:

我是node.js 的新手,我正在尝试使用passport.js 实现OAuth 2.0Google

我有来自 Google Developer Console 的 clientIDclientSecretAuthorized Redirect URLs。回调 URL 类似于 http://localhost:portNumber/foo/bar/callback,当我从我的机器上运行它时,该应用程序运行良好。

当我尝试使用公共 IP 地址通过 Internet 访问它时,会出现此问题。我可以访问我的网站,但是一旦我允许我的应用程序使用OAuth 访问我的Google+ 个人资料,它就会给出错误connection attempt to localhost was rejected。它为我的回调 URL 提供了 ERR_CONNECTION_REFUSED 错误。

我被困住了,因为我现在没有要使用的域来代替 localhost

如果我的问题含糊不清,敬请原谅,我们将不胜感激。

P.S : 我已经转发了我的端口。

【问题讨论】:

您是否尝试在 Google 的开发者控制台中将您的 IP 地址添加为额外的重定向 URL?喜欢:http://[IP]:[PORT]/foo/bar/callback 是的,我试过这样做,但事实证明你不能在授权重定向 URI 中放置公共 IP 地址 试试这个:localtunnel.me 【参考方案1】:

正如我在上面的评论中所建议的,您可以使用localtunnel.me:

    在您的工作站上安装localtunnel 模块:npm install -g localtunnel 像往常一样运行你的网络服务器:node app.js 为您的 Web 服务器运行隧道:lt --port 30003000 是您的服务器监听的端口) 从上方运行隧道后,您将收到一个 URL 作为回报:https://glsjjuobon.localtunnel.meglsjjuobon 是一个随机生成的字符串) 使用上述 URL 在 Google 的开发者控制台中为您的项目添加额外的授权重定向 URIhttps://glsjjuobon.localtunnel.me/connect/google/callback

就是这样!只要您的本地服务器和隧道都在运行,您就可以使用从localtunnel 生成的 URL 访问您的网站。

【讨论】:

你太棒了。它现在完美地工作。谢谢奥特

以上是关于OAuth Google 回调抛出错误“与 localhost 的连接尝试被拒绝”的主要内容,如果未能解决你的问题,请参考以下文章

使用 Angular 向 facebook oauth 发出 CORS 问题

Google OAuth2 是不是有取消授权回调?

Google oauth20 匿名回调函数未在 passport.use 块中执行

Google App Engine OAuth 端点在生产中抛出 400

Google Drive OAuth2 - 对回调和重定向 URI 感到困惑

通过 gapi.signin2.render 按钮的 Google OAuth 未在反应应用程序中点击回调