流星 - Facebook授权根本不起作用

时间:2015-01-22 01:44:05

标签: facebook meteor meteor-accounts

我正在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-uiaccounts-facebook。我经历了Facebook应用注册流程。以下是我的基本设置:

Basic Settings

我的高级设置是默认设置,我已经切换了“您想让这个应用及其所有实时功能向公众开放吗?”现状与发展的评价。

当我实际尝试使用Facebook登录时,授权窗口会重定向到http://localhost:3000/_oauth/facebook?code=AQBaOoQ8XVQvzdqH8dyF03vVVP3daO9UO-tB0IZYCsYOYxL0LFWVrZUt2Rh34I2HI8Y5kofDP8sj46dn--N1pk6h0WOfoLAoaZxJzwSjocmBrRowjGv8JWcyN42msFuUdQAxQzbyrhnE2mQFUQISBOVzbnsR20ozS1pUmSdCb9BbmbidS8NvKvtEmSXm1lh9zPH7DYG4KfWQ2yIWSO8JMLEWa04TOP5rLDc75ak4WfXr1emb25T7981HUL8pCF_d_NgbFCNojoyY2yIB80e1nHxhovr-V3UWcCrNjH8aljTxy-qVGCmuLa4GravNIRfy9I8&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiJlUkpSQjRja0FqVmJTWklCajhvQ01IdGlVdkktNnBXcF81d0RGR3Rod1lDIn0%3D#_=_,这不是有效的地址,因为服务器是远程运行和访问的。

另外(我认为最有问题的),页面不承认任何授权已经发生,并且登录失败的行为(所以我认为它已经失败)。

谁能告诉我我做错了什么?谢谢!

4 个答案:

答案 0 :(得分:10)

要让Meteor尝试从Facebook登录重定向到正确的登录页面(托管在example.com,而不是localhost),我需要让Meteor承认它正在{{1}上运行},而不是example.com。这样做的方法是设置环境变量localhost:3000

关于bash:

ROOT_URL

如果您在example.com上的端口3000上运行该站点,请务必将其放在export ROOT_URL=http://example.com:3000 或等效内容中,以使会话之间的环境变量保持不变。

答案 1 :(得分:3)

检查“高级”标签上的重定向URI。

应该是这样的:http://localhost:3000/_oauth/facebook

不喜欢这样:http://localhost:3000/_oauth/facebook?close

答案 2 :(得分:1)

让我们尝试一下。

首先通过

我的应用&gt;测试应用

example fB developers 现在在右上角有一个绿色按钮create a test app

Green button facebook

现在显示某种模式,Test App NameTest App Namespace,选择您想要的任何名称

<强>第一

基本上的

完成此2个选项

现在在App Domains上选择

localhost:3000

并在网站网址上。

localhost:3000

以及高级,有效OAuth重定向URI

http://localhost:3000/sessions/create

<强>第二

<{1>}上的

,添加此代码。

/server/facebook-config.js for example

它应该可行

答案 3 :(得分:1)

@ RiverTam的答案为我做了!我在localhost上使用SSLProxy进行了自签名SSL证书,我错误地认为你可以在回调URL中添加自定义路由,所以我必须做几件事:

1。在meteor run命令中,在流星运行之前首先导出ROOT_URL

export ROOT_URL=https://localhost:3100; meteor --settings settings-development.json --port 3100

2。使用localhost域

添加FB想要的回调URL

导航至FB App in developer.facebook.com => Facebook Login => Settings => Client OAuth Settings并添加以下网址:

enter image description here

3。将域保留为空

这是FB App in developer.facebook.com => Settings => Advanced => Domain Manager

+999999到River Tam for FireFly参考:P