Meteor facebook登录 - 用户未在SignIn空间中显示

时间:2016-12-15 14:35:20

标签: facebook meteor facebook-login

我尝试在我的应用上添加Facebook登录功能,但是我有一些问题

我从:

开始
meteor add accounts-password 
meteor add accounts-ui 
meteor add service-configuration
meteor add accounts-facebook

然后我在facebook上写一个测试应用程序,添加登录并获取我的appId和秘密
developers facebook app

我复制文档的代码来配置设置(服务器端),我把我的appId和秘密

ServiceConfiguration.configurations.upsert(
    { service: "facebook" },
    {
        service : "facebook",
        appId: '123456789012345678',
        secret: '123456789012345678123456789012345678123456789012345678',
        loginStyle : "popup",
        requestPermissions: ['email','user_friends']
    }
);

我尝试使用facebook登录,并且(在console.log中显示)我需要的所有数据(图片是facebook中的图片配置文件),但SignIn名称是nto显示在应用程序的顶部
Login with facebook

当我使用正常的电子邮件密码登录时,我没有问题 Login with email/password

1 个答案:

答案 0 :(得分:0)

问题在于这个功能:

Accounts.onCreateUser(function(options, user) {
    var imgAvatar = "/img/user.png";
    var username = "NewPlayer_" + Math.floor(Math.random() * (9000 - 1000) + 1000);

if (user.hasOwnProperty('services') && user.services.hasOwnProperty('facebook')  ) {
    imgAvatar = "http://graph.facebook.com/" + user.services.facebook.id + "/picture/?type=small";
    username = user.services.facebook.name;
}
return user;
});

我发现在this post

中使用此功能的正确方法
 Accounts.onCreateUser((function(_this) {
     return function(options, user) {
          options = {
              username: 'pippo'
          }
          return Object.assign({}, user, options);
    };
 })(this));