我尝试在我的应用上添加Facebook登录功能,但是我有一些问题
我从:
开始meteor add accounts-password
meteor add accounts-ui
meteor add service-configuration
meteor add accounts-facebook
然后我在facebook上写一个测试应用程序,添加登录并获取我的appId和秘密
我复制文档的代码来配置设置(服务器端),我把我的appId和秘密
ServiceConfiguration.configurations.upsert(
{ service: "facebook" },
{
service : "facebook",
appId: '123456789012345678',
secret: '123456789012345678123456789012345678123456789012345678',
loginStyle : "popup",
requestPermissions: ['email','user_friends']
}
);
我尝试使用facebook登录,并且(在console.log中显示)我需要的所有数据(图片是facebook中的图片配置文件),但SignIn名称是nto显示在应用程序的顶部
答案 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));