Meteor - авторизация на Facebook просто не работает

Я запускаю приложение метеора с сервера в 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#_=_, который не является действительным адресом, так как сервер запущен и доступен удаленно.

Кроме того (и я полагаю, что наиболее проблематично), страница не подтверждает, что авторизация была выполнена, и действует так, как будто вход не выполнен (так что я предполагаю, что это произошло).

Может кто-нибудь сказать мне, что я делаю не так? Спасибо!

4 ответа

Решение

Чтобы заставить Метеор попытаться перенаправить с входа в Facebook на правильную целевую страницу (размещен на example.comне localhost), Мне нужно было заставить Метеор признать, что он запущен на example.comне localhost:3000, Способ сделать это состоял в том, чтобы установить переменную среды ROOT_URL,

На баш:

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

Если вы используете сайт на example.com через порт 3000, обязательно укажите его в своем .profile или эквивалент, чтобы переменная среды сохранялась между сеансами.

Проверьте URI перенаправления на вкладке "Дополнительно".

Должно быть так:http://localhost:3000/_oauth/facebook

Не так: http://localhost:3000/_oauth/facebook?close

Давайте попробуем это.

Сначала пройдите

Мои приложения> Тестовые приложения

пример разработчиков fBТеперь в правом верхнем углу есть зеленая кнопка create a test app

Зеленая кнопка фейсбук

Теперь появляется какая-то модальная модель, Test App Name а также Test App Namespaceвыберите любое имя

Первый

на Basic завершить это 2 варианта

Теперь в Домене приложений выберите

localhost:3000

и на сайте URL.

localhost:3000

и на продвинутых, на действительных URI перенаправления OAuth

http://localhost:3000/sessions/create

второй

на /server/facebook-config.js for exampleДобавьте этот код.

    // first, remove configuration entry in case service is already configured
Accounts.loginServiceConfiguration.remove({
  service: "facebook"
});
Accounts.loginServiceConfiguration.insert({
  service: "facebook",
  appId: "yourTestAppId",
  secret: "yourTesSecret"
});

И это должно работать

Ответ @RiverTam сделал это для меня! У меня есть собственный сертификат SSL на локальном хосте с SSLProxy и я ошибочно предполагал, что вы можете добавить собственные маршруты к URL-адресу обратного вызова, поэтому мне пришлось сделать несколько вещей:

1. В команде запуска метеорита экспортируйте ROOT_URL перед запуском метеора

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

2. Добавьте URL обратного вызова, который хочет FB, с доменом localhost

Перейдите к FB App in developer.facebook.com => Facebook Login => Settings => Client OAuth Settings и добавьте URL следующим образом:

3. Оставьте домен пустым

Это под FB App in developer.facebook.com => Settings => Advanced => Domain Manager

+999999 к реке Там для ссылки FireFly:P

Другие вопросы по тегам