14

Meteor のaccounts-facebookパッケージはセットアップが非常に簡単でした。Facebook アプリ ID とシークレット トークンを入力するために、Meteor Web アプリをブラウザーにロードし、ログイン ボタンをクリックして [Facebook の構成] をクリックすると、アプリ ID やシークレット トークンなどの構成値を求められました。

今、それらを変更したいのですが、それらがどこに保存されているのかわかりません。meteor アプリのディレクトリまたはサブディレクトリのどのファイルにもそれらが表示されず、データベースのどこにもありません。

4

6 に答える 6

27

構成データは mongodb に保存されます。

積み込めば

meteor mongo

次にdb.meteor_accounts_loginServiceConfiguration.find()、構成データが表示されるはずです

更新もできます!戻ってきたら

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

同じ mongo シェル内で:

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
于 2013-06-17T09:12:27.710 に答える
19

クリストファーの答えを詳しく説明するために、実行時にアプリを構成する方法を次に示します

/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

于 2014-07-02T11:56:23.697 に答える
2

これにより、起動時にすべてのサービスが削除され、settings.json (meteor --settings settings.json) に基づいて再挿入されます。

@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"
    }],
  }
}
于 2015-05-08T09:26:17.343 に答える