首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloud9上的Facebook

Cloud9上的Facebook
EN

Stack Overflow用户
提问于 2015-10-14 18:42:02
回答 2查看 1.3K关注 0票数 6

Facebook需要一个website URL,该网站是用来验证Oauth请求的。Facebook还需要有效的callback URLs,基本上是Facebook可以安全地传递Oauth令牌的URL列表。

这里有我的本地环境和我的cloud9环境的区别,关于Facebook设置:

Localhost

  • 网站网址:http://localhost:3000
  • 回调网址:http://localhost:3000/auth/facebook/callback

Cloud9

  • 网站网址:http://myapp-cireficc.c9.io/
  • 回调网址:http://myapp-cireficc.c9.io/auth/facebook/callback

我的本地主机设置工作得很好。然而,当我在cloud9上运行我的应用程序时,我从Facebook得到以下错误:

应用程序配置不允许给定URL :应用程序的设置不允许一个或多个给定URL。它必须匹配网站URL或画布URL,或者该域必须是应用程序的某个域的子域。

这意味着这两个参数中的一个是错误的..。经过一些调试之后,Facebook似乎正在尝试访问这个回调URL:

redirect_uri=http%3A%2F%2Fmyapp-cireficc.c9.io%3A80%2Fauth%2Ffacebook%2Fcallback

在将其解码为更具可读性的字符之后,我们有:

http://myapp-cireficc.c9.io:80/auth/facebook/callback

它看起来像是一个随机的:80被添加到回调URL中,这让我认为当Oauth请求被发送出去时,它被附加了,而Facebook只是把它忠实地附加到响应回调,这现在是不正确的了。由于要添加:80,因此预期的回调和实际的回调不同:

预期http://myapp-cireficc.c9.io/auth/facebook/callback

实际http://myapp-cireficc.c9.io:80/auth/facebook/callback

在我看来,这似乎是cloud9在发送请求时添加的东西(可能是因为它们的域名是如何设置的?)我能做些什么让Facebook Oauth在cloud9上工作呢?

Note:Cloud9 9的env.PORT8080env.IP0.0.0.0。这似乎是回调中的:80的来源,但我不知道如何绕过这个问题。

有趣的是,我在Heroku上设置了我的分期环境,Heroku没有这个问题。通过使用http://myapp-staging.herokuapp.com和正确的回调URL,我可以轻松地访问Facebook。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-25 03:01:05

同样的问题是:将端口(:80)添加到cloud9 url中,然后将其添加到有效的OAuth重定向URI中。

票数 1
EN

Stack Overflow用户

发布于 2017-07-20 18:07:42

@AnthonyGrove的回答对我没有用。

但是,将端口(:8080)添加到cloud9 url中,然后将其添加到有效的OAuth重定向URI中。

来自文档Please note that 8080, 8081, and 8082 are the only available ports on a hosted Cloud9 workspace.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33133166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档