【发布时间】:2015-10-08 19:53:32
【问题描述】:
我一直在尝试 Meteor。我想使用 OAuth 对我网站上的用户进行身份验证,因为我不想自己实现登录功能。
目前我的网站非常简单。一个计数器,您单击一个按钮,计数器就会增加一。当用户转到另一台机器并登录他们的计数时,这个想法是持久的。
我已按照meteor.com/accounts 上的步骤进行操作。
-
meteor add accounts-twitter和meteor add accounts-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 登录时,我会弹出一个窗口,上面写着:
此网页不可用
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/
- 回调 URL:https://abc-matthewcanty.c9.io/ 也尝试使用 _oauth/twitter?close
当我点击按钮时,我不知道如何阻止它转到 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