Meteor:在服务器上将邮件地址转换为MD5hash,并在客户端访问
Meteor: Turning email address into MD5hash on server, and accessing on client
所以我想在我的网站上使用 Gravatar 头像。我得到了合适的包裹。它的工作方式是将电子邮件地址转换为 "MD5Hash." 发送到 Gravatar 以换取图像 url。
很好,但我想在不暴露每个人的电子邮件地址的情况下显示头像。同时,我已经有用户可能已经有头像了,我认为如果有一天他们的头像突然出现,而不是在用户配置文件集合中添加另一个字段,或者要求他们这样做,那会很酷。
有没有办法在服务器上完成其中的一些工作并实现我的目标?
Handlebars.registerHelper("gravatar", function(id){
var email = Meteor.users.findOne({_id: id}).emails[0].address;
var options = {
secure: true,
size: 29,
default: 'retro'
};
var md5Hash = Gravatar.hash(email);
// 5658ffccee7f0ebfda2b226238b1eb6e
var url = Gravatar.imageUrl(md5Hash, options);
// https://secure.gravatar.com/avatar/5658ffccee7f0ebfda2b226238b1eb6e
return url;
});
骇人听闻:
在服务器上:
userArray = Meteor.users.find(query,{fields: {"emails.address": 1}}).fetch();
userArray.forEach(function(el,i,a){
a[i] = { _id: el._id, md5hash: Gravatar.hash(el.emails[0].address) };
}
其中 query
是您的标准,将为您提供一个 数组 个对象,其 _id
与每个用户的 _id
相匹配其 md5hash
值是该用户电子邮件的哈希值。你可以设置一个方法在你需要的时候return这个数组给你
好消息是您的客户可以随时使用这些哈希值来获得任何大小的化身。
不那么骇人听闻了:
上面的问题是您的服务器经常会重新计算每封电子邮件的 md5hash。另外,您将从服务器获得一个可能很大且无反应的阵列。你会后悔的。您实际上只是想向用户文档中的 emails
数组添加一个 md5hash
键,为现有用户初始化它,并确保新用户在创建时始终设置此键。这将使您能够处理单个电子邮件地址用户或多个电子邮件地址用户。
所以我想在我的网站上使用 Gravatar 头像。我得到了合适的包裹。它的工作方式是将电子邮件地址转换为 "MD5Hash." 发送到 Gravatar 以换取图像 url。
很好,但我想在不暴露每个人的电子邮件地址的情况下显示头像。同时,我已经有用户可能已经有头像了,我认为如果有一天他们的头像突然出现,而不是在用户配置文件集合中添加另一个字段,或者要求他们这样做,那会很酷。
有没有办法在服务器上完成其中的一些工作并实现我的目标?
Handlebars.registerHelper("gravatar", function(id){
var email = Meteor.users.findOne({_id: id}).emails[0].address;
var options = {
secure: true,
size: 29,
default: 'retro'
};
var md5Hash = Gravatar.hash(email);
// 5658ffccee7f0ebfda2b226238b1eb6e
var url = Gravatar.imageUrl(md5Hash, options);
// https://secure.gravatar.com/avatar/5658ffccee7f0ebfda2b226238b1eb6e
return url;
});
骇人听闻:
在服务器上:
userArray = Meteor.users.find(query,{fields: {"emails.address": 1}}).fetch();
userArray.forEach(function(el,i,a){
a[i] = { _id: el._id, md5hash: Gravatar.hash(el.emails[0].address) };
}
其中 query
是您的标准,将为您提供一个 数组 个对象,其 _id
与每个用户的 _id
相匹配其 md5hash
值是该用户电子邮件的哈希值。你可以设置一个方法在你需要的时候return这个数组给你
好消息是您的客户可以随时使用这些哈希值来获得任何大小的化身。
不那么骇人听闻了:
上面的问题是您的服务器经常会重新计算每封电子邮件的 md5hash。另外,您将从服务器获得一个可能很大且无反应的阵列。你会后悔的。您实际上只是想向用户文档中的 emails
数组添加一个 md5hash
键,为现有用户初始化它,并确保新用户在创建时始终设置此键。这将使您能够处理单个电子邮件地址用户或多个电子邮件地址用户。