Как выполнить REconfigure учетные записи Meteor - facebook или где находится настройка Meteor Facebook? - программирование
Подтвердить что ты не робот

Как выполнить REconfigure учетные записи Meteor - facebook или где находится настройка Meteor Facebook?

Пакет Meteor accounts-facebook был очень прост в настройке. Чтобы ввести идентификатор приложения Facebook и секретный токен, я загрузил свое веб-приложение meteor в браузере и нажал кнопку входа в систему, а затем нажал "Настроить Facebook", в котором мне были заданы значения конфигурации, такие как идентификатор приложения и секретный токен.

Теперь я хочу изменить их и не могу понять, где они хранятся. Я не вижу их ни в одном файле в моем каталоге или подкаталогах метеоритных приложений, ни в любой другой базе данных.

4b9b3361

Ответ 1

Данные конфигурации хранятся в mongodb.

Если вы загружаете

meteor mongo

Затем используйте db.meteor_accounts_loginServiceConfiguration.find(), вы должны увидеть свои данные конфигурации

Вы также можете обновить его! Если вы вернулись

{ "service" : "x", "appId" : "x", "secret" : "x", "_id" : "abc" }`

Внутри той же оболочки манго:

db.meteor_accounts_loginServiceConfiguration.update({_id:'abc'},
    {$set:{"appId" : <new app id>, "secret" : <new secret>}});

(Используя поле _id из конфигурации службы, которую вы хотите изменить.

Внутри Meteor вы можете использовать это вместо:

ServiceConfiguration.configurations.update({
    service:"facebook"
}, {
    $set: {
        <new params>
    }
});

Примечание. Для этого в meteor вам нужно добавить этот пакет с помощью:

meteor add service-configuration

Ответ 2

Чтобы уточнить ответ Кристоффера, вот как настроить приложение во время выполнения

/server/boot.js

configureFacebook = function(config) {
    // first, remove configuration entry in case service is already configured
    ServiceConfiguration.configurations.remove({
        service: "facebook"
    });

   ServiceConfiguration.configurations.insert({
        service: "facebook",
        appId: config.clientId,
        secret: config.secret
    });
};

// set the settings object with meteor --settings private/settings-local.json
var facebookConfig = Meteor.settings.facebook;
if(facebookConfig) {
    console.log('Got settings for facebook', facebookConfig)
    configureFacebook(facebookConfig);
}

Это используется в сочетании с некоторыми файлами настроек, которые используются локально и для производства:

/private/local-settings.json

{
    "facebook" : {
        "clientId": "330foobar",
        "secret": "52e1e247a5a1234klasdf087vasdff07"
    }
}

Чтобы развернуть локально, я просто meteor --settings private/local-settings.json и разворачиваю производственные настройки для facebook на рабочий сервер meteor deploy --settings private/prod-settings.json.

Ответ 4

Это просто удалит все службы при запуске и снова вставляет их на основе ваших настроек. json (meteor - settings settings.json) Coffee- script эквивалент:

@privateSettings = Meteor.settings.private

for s in privateSettings.services
  ServiceConfiguration.configurations.remove service: s.service
  ServiceConfiguration.configurations.insert s

Настройки, сохраненные в settings.json:

{
  "private": {
    "services": [{
        "service": "google",
        "clientId": "yourappid.apps.googleusercontent.com",
        "secret": "yoursecret"
    },{ 
        "service": "twitter",
        "consumerKey": "yourconsumerkey",
        "secret": "yoursecret"
    },{
        "service": "facebook",
        "appId": "yourappid",
        "secret": "yoursecret"
    }],
  }
}

Ответ 5

Если у вас еще нет большого количества данных в вашем приложении, просто запустите:

meteor reset

Это уничтожит все данные Mongo для приложения.

Ответ 6

[ПРИМЕЧАНИЕ: для Meteor >= 1.2.2]

Официальная документация Meteor здесь объясняет, как это сделать.

Добавьте пакет service-configuration (иначе вы не можете использовать ServiceConfiguration):

$ meteor add service-configuration

Затем вы можете поместить это в Meteor.startup:

Meteor.startup(function () {

  // Set Facebook app configurations
  ServiceConfiguration.configurations.upsert({ 
    service: "facebook" 
  }, {
    $set: {
      appId: 'YOUR_APP_ID',
      secret: 'YOUR_APP_SECRET'
    }
  });

  return;
});

Внешние настройки Facebook в настройках. json

Возможно, окончательное решение - установить конфигурации приложений Facebook в файл настроек

/settings.json

Вот так:

{
  "facebook" : {
    "appId": "APP_ID",
    "secret": "APP_SECRET"
  }
}

Затем вы должны запустить приложение Meteor с помощью

$ meteor --settings settings.json

чтобы загрузить файл настроек.

Наконец, вы можете загрузить конфигурации Facebook внутри Meteor.startup из файла настроек:

Meteor.startup(function () {

  // Load and set Facebook app configurations
  var facebookConfig = Meteor.settings.facebook;
  ServiceConfiguration.configurations.upsert({ 
    service: "facebook" 
  }, {
    $set: {
      appId: facebookConfig.appId,
      secret: facebookConfig.secret
    }
  });

  return;
});