检查gravatar是否与node.js一起存在

时间:2014-04-29 20:07:05

标签: javascript css node.js sails.js gravatar

大家好我知道我有一个使用Sails.JS的小型网络应用程序,而且如果用户没有一个gravatar帐户/个人资料,我会尝试设置默认图片。

这是我用来在控​​制器中散列电子邮件的代码:

var crypto = require('crypto');
req.session.email = 'user_email@gmail.com';
req.session.gravatar_hash = crypto.createHash('md5').update(req.session.email).digest('hex');

如你所见,我现在正在使用哈希。

所以在我看来,我有:

<div class="gravatar" style="background-image: url('http://www.gravatar.com/avatar/<%=req.session.gravatar_hash%>?s=50');"></div>

此代码非常适合显示gravatar(默认或自定义)图像,但如果我想进行验证,那么如果用户没有gravatar,我可以使用自定义图像? 有一种方法可以验证吗?

2 个答案:

答案 0 :(得分:8)

您可以检查'http://gravatar.com/avatar/' + req.session.gravatar_hash + '.png?d=404'的(HEAD)请求是否会导致404。

答案 1 :(得分:7)

Gravatar让您了解 - 如果用户没有Gravatar,则允许您指定要显示的默认图片网址。来自their docs

  

如果您更喜欢使用自己的默认图片(也许是您的徽标,   搞笑的脸,无论如何),然后您可以通过提供URL轻松地这样做   到d =或default =参数的图像。网址应该是   URL编码以确保其正确传输,例如:

     

<img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=http%3A%2F%2Fexample.com%2Fimages%2Favatar.jpg"/>

View the docs了解更多选项和信息。