服务配置应该在哪里进入流星?在客户端还是在服务器端?

时间:2016-02-22 05:55:41

标签: javascript meteor linkedin meteor-accounts

我正在使用自定义login-with-linkedin按钮。我有accounts-baseaccounts-oauthpauli:accounts-linkedin个包。我使用了客户端ID和来自linkedin开发者网站的秘密,如下所示

Meteor.startup(function() {
    ServiceConfiguration.configurations.update({
        'service': 'linkedin',
    },
    {
        $set: {
            'clientId': 'myClientId',
            'secret': 'mySecret'
        }
    },
    {
        upsert: true
    });
});

在铁路由器中,我还在/ login模板上定义了waitOn函数,如下所示:

this.route('login', {
    path: '/login',
    waitOn: function() {
       Accounts.loginServicesConfigured();
    }
});

现在,当我点击该按钮时,会打开一个弹出窗口,但它没有加载linkedin登录页面,并且显示“ERR_CONTENT_DECODING_FAILED”' ERR_CONTENT_DECODING_FAILED'。 enter image description here

我在客户端的Meteor.startup函数中编写了ServiceConfiguration。我是否正确在客户端编写服务配置?或者我应该在服务器端写它?

2 个答案:

答案 0 :(得分:2)

它应该在服务器端。从这里的Meteor文档中,

http://docs.meteor.com/#/full/meteor_loginwithexternalservice

  

登录服务配置从服务器发送到客户端   应用启动时的DDP

我也在服务器端成功为account-google完成了服务配置。

答案 1 :(得分:0)

似乎这个common issue

有一个通用的解决方案
  

首先,添加服务配置包:

     

meteor add service-configuration

     

然后,在你的应用中:

render () {
   return (
     <div>
       {this.props.content[0].type}
     </div>
   )
}

我通常只是将一个带有此代码的service-config.js文件放在服务器中。