【问题标题】:Meteor accounts-twitter unable to get working流星账户-推特无法正常工作
【发布时间】:2015-10-08 19:53:32
【问题描述】:

我一直在尝试 Meteor。我想使用 OAuth 对我网站上的用户进行身份验证,因为我不想自己实现登录功能。

目前我的网站非常简单。一个计数器,您单击一个按钮,计数器就会增加一。当用户转到另一台机器并登录他们的计数时,这个想法是持久的。

我已按照meteor.com/accounts 上的步骤进行操作。

  1. meteor add accounts-twittermeteor add accounts-ui
  2. 在 HTML 中添加了 {{> loginButtons}}
  3. 在Cloud9终端meteor --port $IP:$PORT
  4. 按照apps.twitter.com 上的屏幕说明进行操作
  5. 设置网站abc-matthewcanty.c9.io/
  6. 设置回调 URL http://0.0.0.0:8080/_oauth/twitter - 这是我被告知要做的。
  7. 复制到API KeyAPI Secret
  8. 选择基于弹出窗口的身份验证并按下保存

现在,当我点击 使用 Twitter 登录时,我会弹出一个窗口,上面写着:

此网页不可用

ERR_ADDRESS_INVALID

弹窗地址如下:

0.0.0.0:8080/_oauth/twitter/?requestTokenAndRedirect=true&state=eyJsb2dpblN......

注意,使用 abc-matthewcanty.c9.io/ 作为回调 URL 没有区别。

这是因为我使用的是Cloud9 IDE,而且我还需要做一些修改吗?

Meteor 文档没有提供进一步的步骤。可能假定了解 OAuth 作为先决条件,但没有这样说明。

编辑

我访问了下面@tomas-hromnik 建议的网站:

http://www.servicepro.wiki/wiki/1171/cloud9-twitter-account-integration-for-sign-up

并更新了 apps.twitter.com 中的应用设置:

当我点击按钮时,我不知道如何阻止它转到 http://0.0.0.0:8080/etc

【问题讨论】:

  • 您的工作空间/应用服务器访问权限是否公开?您可以通过单击“共享”并查看“应用程序”旁边是否选中“公共”来进行检查
  • 对不起,仍然没有...更新了面向公众的应用程序 URL 的地址。尝试重新生成应用密钥和秘密并重新配置。
  • 如果我使用弹出窗口中的 URL 并添加我的网站来代替 IP:PORT,则身份验证完成。
  • 嗯,所以,这只是一个猜测,但可能是流星包在回调 url 中硬编码 0.0.0.0:8080 并且 twitter 尊重它。这个answer 可能会有所帮助,将 ROOT_URL 环境变量设置为您的工作区 url。
  • 太棒了! :) 我会将其发布为帮助他人的答案

标签: twitter meteor oauth cloud9-ide meteor-accounts


【解决方案1】:

以下是使 Twitter auth 与 Cloud9 上的 Meteor 一起使用所需执行的步骤:

  • 确保您的应用程序是公开的,而不是私有的。您可以通过单击“共享”并在 Cloud9 工作区中的“应用程序”旁边选中“公开”来做到这一点
  • 确保将 twitter 回调设置为 https://<workspace-name>-<username>.c9users.io
  • 由于 Meteor twitter auth 包默认使用0.0.0.0:8080(你启动它的IP:PORT)作为回调主机,所以你需要添加ROOT_URL环境变量。如果您使用的是 Cloud9 运行器,您可以通过单击运行面板上的“ENV”按钮并添加它来添加环境变量。将 ROOT_URL 设置为应用程序的外部 URL。否则,您可以在终端中输入:$ export ROOT_URL='https://<workspace-name>-<username>.c9users.io/'

注意: 请注意,默认情况下 Meteor 从端口 3000 开始,但您需要将端口设置为 8080 才能使其工作。

【讨论】:

  • 也可以在终端设置环境变量:$ export ROOT_URL='https://abc-matthewcanty.c9.io/'
  • 是的,我刚刚添加了 Cloud9 runner 方式,因为人们通常都知道导出,但是这个。我也会添加这个:)
  • 这也解决了我在 Cloud 9 上的 OAUTH 和 accounts-google 的类似问题,谢谢!
【解决方案2】:

我认为地址 0.0.0.0:8080 不正确。 Meteor默认运行在3000端口,地址是localhost,所以回调URL应该是http://127.0.0.1:3000/_oauth/twitter?close

在本教程中了解更多关于在 Meteor 中使用 Twitter 登录的信息:http://meteor.hromnik.com/blog/login-with-facebook-twitter-and-google-in-meteor

编辑:对于生产用途,请使用您的生产 URL:

http://abc.matthewcanty.c9.io/_oauth/twitter?close

以下是在 Cloud9 上创建 Twitter 帐户集成的步骤:http://www.servicepro.wiki/wiki/1171/cloud9-twitter-account-integration-for-sign-up

【讨论】:

  • 恐怕这在 Cloud9 中是不可能的。终端请求您使用参数--port $IP:$PORT 执行meteor。这会让你在 0.0.0.0 端口 8080 上设置。
  • 除此之外,我尝试在没有任何参数的情况下运行 Meteor,但无法访问 Cloud9 中的页面 - 即,通过在嵌入式浏览器中浏览到 localhost:3000。
  • 如果您添加生产 URL 并允许 twitter 应用程序用于登录 Twitter,它必须工作。我已经更新了答案。
  • 用更多信息更新了我的问题。请注意它应该是 abc- 而不是 abc.
猜你喜欢
  • 2016-11-16
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
相关资源
最近更新 更多