Email 如何获取登录用户Meteor的电子邮件id?
我在meteor.com下部署了一个应用程序,可以使用社交媒体连接登录。Meteor帐户facebook帐户twitter帐户使用google软件包 但这个Meteor应用程序在发布“电子邮件”后不会返回登录用户的电子邮件id 我们以前使用以下代码获取登录用户的电子邮件id,但现在它不起作用Email 如何获取登录用户Meteor的电子邮件id?,email,meteor,accounts,Email,Meteor,Accounts,我在meteor.com下部署了一个应用程序,可以使用社交媒体连接登录。Meteor帐户facebook帐户twitter帐户使用google软件包 但这个Meteor应用程序在发布“电子邮件”后不会返回登录用户的电子邮件id 我们以前使用以下代码获取登录用户的电子邮件id,但现在它不起作用 Meteor.user().emails[0].address 我的应用程序中的代码: 服务器: Meteor.publish(null, function() { return Meteor.u
Meteor.user().emails[0].address
我的应用程序中的代码:
服务器:
Meteor.publish(null, function() {
return Meteor.users.find({_id: this.userId}, {fields: { emails: 1, profile: 1 } });
});
客户:
Template.layout.events({
'click #checkUser':function(){
var user = Meteor.user();
var email = user && user.emails && user.emails[0].address
alert(email);
}
})
但此函数返回“未定义”
请提供帮助您可以使用此软件包
meteor add splendido:accounts emails字段
这是一个Meteor软件包,用于维护已注册的电子邮件阵列
用户对象内的字段与任何帐户服务电子邮件一起更新
用户用于登录应用程序
因此,当您使用此软件包时,无论用户如何注册,您都将始终在Meteor.user().registered_emails
和Meteor.user().registered_emails[0]上使用此软件包。地址
现在应该可以使用了
更新:您必须将此信息发布到客户端。您可以在下面执行此操作,并在需要时订阅此信息,或者将user
更改为null
,它将自动为所有人发布此信息
Meteor.publish("user", function () {
if (this.userId) {
return Meteor.users.find({_id: this.userId}, {fields: {'registered_emails': 1}});
} else {
return [];
};
});
你的
设置中有什么。json
?添加了你提到的包并更改了我的代码“单击#mobileuser”:function(){var userEmail=Meteor.user().registed_emails[0]。address;alert(userEmail);}
,但结果仍然相同`@MaheshBabu添加此软件包后,您可以注销并重新登录吗?它工作的基础上登录回调也我猜你必须公布这个额外的信息,在客户端忘记了,我会更新答案