我一直在尝试 Meteor。我想使用 OAuth 对我网站上的用户进行身份验证,因为我不想自己实现登录功能。
目前我的网站非常简单。计数器,单击按钮计数器就会加一。当用户转到另一台机器并登录其计数时,这个想法就会被保留。
我已按照meteor.com/accounts上的步骤进行操作.
meteor 添加帐户-twitter
和meteor 添加帐户-ui
- 在 HTML 中添加了
{{> loginButtons}}
。 - 在 Cloud9 终端中
meteor --port $IP:$PORT
- 按照 apps.twitter.com 上的屏幕说明进行操作
- 设置网站
abc-matthewcanty.c9.io/
- 设置回调 URL
http://0.0.0.0:8080/_oauth/twitter
- 这是我被告知要做的事情。 - 复制到
API Key
和API Secret
- 选择基于弹出窗口的身份验证并按下保存
现在,当我点击使用 Twitter 登录时,我会收到一个弹出窗口,其中显示:
This webpage is not available
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 中的应用设置:
- 网站:https://abc-matthewcanty.c9.io/
- 回调网址:https://abc-matthewcanty.c9.io/也尝试过 _oauth/twitter?close
当我点击按钮时,我不知道如何阻止它进入 http://0.0.0.0:8080/etc
最佳答案
以下是让 Twitter 身份验证与 Cloud9 上的 Meteor 配合使用所需执行的步骤:
- 确保您的应用程序是公开的,而不是私有(private)的。为此,您可以点击“共享”,然后在 Cloud9 工作区中选中“应用程序”旁边的“公共(public)”
- 确保将 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 才能使其正常工作。
关于twitter - Meteor 账户-twitter 无法使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31503844/