【发布时间】:2015-03-20 17:29:51
【问题描述】:
我正在http://example.com:3000 的服务器上运行一个流星应用程序,并试图通过 Facebook 使用 accounts-facebook 对其进行授权。
我的 HTML 如下所示:
<head>
<title>appname</title>
</head>
<body>
<h1>Welcome to Meteor!</h1>
{{> hello}}
</body>
<template name="hello">
<button>Click Me</button>
{{>loginButtons}}
{{#if currentUser}}
Logged in
{{/if}}
</template>
我确实启用了 accounts-ui 和 accounts-facebook。我完成了 Facebook 应用程序注册过程。这是我的基本设置:
我的高级设置是默认设置,我已经切换了“你想让这个应用程序及其所有实时功能对公众开放吗?”在状态和审查中开启。
当我实际尝试使用 Facebook 登录时,授权窗口会重定向到 http://localhost:3000/_oauth/facebook?code=AQBaOoQ8XVQvzdqH8dyF03vVVP3daO9UO-tB0IZYCsYOYxL0LFWVrZUt2Rh34I2HI8Y5kofDP8sj46dn--N1pk6h0WOfoLAoaZxJzwSjocmBrRowjGv8JWcyN42msFuUdQAxQzbyrhnE2mQFUQISBOVzbnsR20ozS1pUmSdCb9BbmbidS8NvKvtEmSXm1lh9zPH7DYG4KfWQ2yIWSO8JMLEWa04TOP5rLDc75ak4WfXr1emb25T7981HUL8pCF_d_NgbFCNojoyY2yIB80e1nHxhovr-V3UWcCrNjH8aljTxy-qVGCmuLa4GravNIRfy9I8&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiJlUkpSQjRja0FqVmJTWklCajhvQ01IdGlVdkktNnBXcF81d0RGR3Rod1lDIn0%3D#_=_,这不是一个有效地址,因为服务器是远程运行和访问的。
另外(我想是最成问题的),页面不承认发生了任何授权,并且表现得好像登录失败了(所以我认为它已经失败了)。
谁能告诉我我做错了什么?谢谢!
【问题讨论】:
-
我很确定这与 facebook 认为应用程序托管在 localhost 的事实有关,但是如果我将有效 OAuth 重定向 URI 更改为 example.com,授权仍会尝试转到本地主机地址,但由于该地址未列入白名单而失败。
-
你能在你的服务器端代码的某个地方运行 console.log(process.env.ROOT_URL) 看看你的 ROOT_URL 是什么吗?
-
@WillParker
http://localhost:3000/ -
@WillParker 谢谢!现在我了解了 ROOT_URL 的作用。我只需要将其更改为 example.com
标签: facebook meteor meteor-accounts