流星 - Facebook的授权根本不工作 [英] Meteor - Facebook authorization simply isn't working

查看:141
本文介绍了流星 - Facebook的授权根本不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从 http://example.com:3000 的服务器运行流星应用程序,并尝试通过Facebook授权使用 accounts-facebook

I'm running a meteor app from a server at http://example.com:3000 and trying to get it to authorize via Facebook using accounts-facebook.

我的HTML看起来像这样:

My HTML looks like this:

<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应用程序注册过程。以下是我的基本设置:

I do have accounts-ui and accounts-facebook enabled. I went through the Facebook app registration process. Here are my basic settings:

我的高级设置是默认的,我已经切换了您想让这个应用程序及其所有的现场功能可供公众使用吗?在状态&审查。

My advanced settings are default, and I have switched the "Do you want to make this app and all its live features available to the general public?" on in Status & Review.

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

When I actually try to log on using Facebook, the authorization window redirects to http://localhost:3000/_oauth/facebook?code=AQBaOoQ8XVQvzdqH8dyF03vVVP3daO9UO-tB0IZYCsYOYxL0LFWVrZUt2Rh34I2HI8Y5kofDP8sj46dn--N1pk6h0WOfoLAoaZxJzwSjocmBrRowjGv8JWcyN42msFuUdQAxQzbyrhnE2mQFUQISBOVzbnsR20ozS1pUmSdCb9BbmbidS8NvKvtEmSXm1lh9zPH7DYG4KfWQ2yIWSO8JMLEWa04TOP5rLDc75ak4WfXr1emb25T7981HUL8pCF_d_NgbFCNojoyY2yIB80e1nHxhovr-V3UWcCrNjH8aljTxy-qVGCmuLa4GravNIRfy9I8&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiJlUkpSQjRja0FqVmJTWklCajhvQ01IdGlVdkktNnBXcF81d0RGR3Rod1lDIn0%3D#_=_, which isn't a valid address as the server is run and accessed remotely.

此外(我认为最有问题的是),页面不承认任何授权已经发生,并且像登录名一样失败(所以我假设它有)。

Additionally (and I suppose most problematically), the page doesn't acknowledge that any authorization has occurred, and acts like the login has failed (so I assume it has).

任何人都可以告诉我我在做错什么?谢谢!

Can anyone tell me what I'm doing wrong? Thanks!

推荐答案

要使Meteor尝试从Facebook登录重定向到正确的目标网页(托管在 example.com ,而不是 localhost ),我需要让Meteor承认它正在 example.com ,而不是 localhost:3000 。执行此操作的方法是设置环境变量 ROOT_URL

To make Meteor try to redirect from the Facebook login to the correct landing page (hosted at example.com, not localhost), I needed to make Meteor acknowledge that it's being run on example.com, not localhost:3000. The way to do this was to set the environment variable ROOT_URL.

在bash上:

export ROOT_URL=http://example.com:3000

如果您在port.com上的example.com上运行该网站,请务必将其放在您的 .profile 中或等同于环境变量在会话之间持续存在。

If you're running the site on example.com on port 3000, be sure to put it in your .profile or equivalent to make the environment variable persist between sessions.

这篇关于流星 - Facebook的授权根本不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆