Как выполнить REconfigure учетные записи Meteor - facebook или где находится настройка Meteor Facebook?
Пакет Meteor accounts-facebook
был очень прост в настройке. Чтобы ввести идентификатор приложения Facebook и секретный токен, я загрузил свое веб-приложение meteor в браузере и нажал кнопку входа в систему, а затем нажал "Настроить Facebook", в котором мне были заданы значения конфигурации, такие как идентификатор приложения и секретный токен.
Теперь я хочу изменить их и не могу понять, где они хранятся. Я не вижу их ни в одном файле в моем каталоге или подкаталогах метеоритных приложений, ни в любой другой базе данных.
Ответы
Ответ 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
.
Ответ 3
Как насчет этого:
Accounts.loginServiceConfiguration.insert({
service: "facebook",
appId: "1292962797",
secret: "75a730b58f5691de5522789070c319bc"
});
Найдено здесь: http://docs.meteor.com/#meteor_loginwithexternalservice
Ответ 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;
});