nodejs --- 使用全球公认头像gravatar

news2025/1/9 1:38:16

目录

历史:阿凡达

什么是头像?

我为什么要添加 Gravatar?

我怎样才能得到一个Gravatar?

开发者使用

功能描述

安装和使用

实践应用


我们他们名字旁边的灰色图标是怎么出现的。那么这个灰色图标被称为“神秘人”gravatar。在本文中,我们将讨论什么是 Gravatar 以及为什么您应该立即开始使用它。

历史:阿凡达

在我们深入了解什么是 Gravatar 之前,我们应该首先了解什么是头像。化身是用户的图形表示。它可以是此人的照片,也可以是他们想要关联的随机图标。回到网络有点匿名的时代,人们会使用图标来识别身份。在游戏玩家社区中,情况基本上仍然如此。关于讨论板、论坛的最酷的部分之一是您可以很容易地识别活跃用户,因为他们的头像。虽然很难记住名字,但很容易识别特定图像。如果你是众多讨论区的一员,你就会开始认出到处都是同一群人。随着网络的发展和博客开始变得更加主流,拥有评论者的身份相当困难。通过论坛和其他服务,用户需要注册。每个用户都有自己的个人资料,因此他们可以轻松地将“头像”添加到他们的个人资料中。但是,在大多数情况下,博客评论不需要注册。那么我们如何识别用户呢?好吧,那是 Gravatar 进来的时候。

什么是头像?

Gravatar 代表全球认可的头像。它在全球范围内得到认可,因为数以百万计的人和网站都在使用它们。大多数流行的应用程序 都内置了对 Gravatar 的支持。当用户在支持 Gravatar 的网站上留下评论(通过电子邮件)时,它会从 Gravatar 服务器中提取他们的全球认可头像。然后该图片显示在评论旁边。这允许每个评论者通过万维网获得他们的身份。

我为什么要添加 Gravatar?

如果你想在网络上被识别,那么你应该使用 gravatar。如果您是博主、非营利组织、小型企业或任何想要建立品牌的人,那么您需要开始使用 gravatar。您可能会阅读博客并发表评论。起初,您的头像可能不会受到太多关注。但是,如果同一个人在他们阅读的多个网站上看到您的评论,他们可能最终会访问您的网站。作为出版商,我们发现通过他们的头像识别我们的忠实用户真的很容易。

在我们看来,Gravatar 让您的评论脱颖而出。

我怎样才能得到一个Gravatar?

它很简单,而且是免费的。只需转到Gravatar 的网站。使用您最常发表评论的电子邮件注册。添加您自己的头像。这可以是您自己的照片、您公司的徽标或一些独特的东西。你真的必须做一次。您很可能不会经常更改您的头像。所以它更像是设置它并忘记它。

中文注册地址:https://cn.gravatar.com

英文注册地址:https://en.gravatar.com

开发者使用

功能描述

这个库允许开发者在Node.js环境中生成Gravatar的URL。它基于Gravatar的规范实现,包括生成用户头像的URL和用户资料的URL。

安装和使用

要使用这个库,你首先需要通过npm安装它:

npm install gravatar

安装后,你可以在你的Node.js项目中这样使用它:

var gravatar = require('gravatar');

// 生成头像URL
gravatar.url('email@example.com', {s: '200', r: 'pg', d: '404'});

其中,email参数是用户的电子邮件地址,options是一个对象,可以包含诸如大小(s)、默认图片(d)、评级(r)等查询字符串选项。

实践应用
const UserService = require("../services/UserService");
const gravatar = require("gravatar");
const bcrypt = require("bcrypt");
const UserController = {
  register: async (req, res) => {
    let { email, password, name } = req.body;
    // 生成头像 邮箱+options
    const avatar = gravatar.url(email, {
      s: "200", //大小
      r: "pg", //级别
      d: "mm", //默认值
    });
    let user = await UserService.findUser(email);
    console.log(user);
    if (user) {
      res.send({
        code: "-1",
        error: "邮箱已被注册",
      });
      return;
    }
    // 生成盐值;
    bcrypt.genSalt(10, function (err, salt) {
      // 哈希处理密码,
      bcrypt.hash(password, salt, async function (err, hash) {
        // Store hash in your password DB.
        if (err) throw err;
        await UserService.add({
          name,
          email,
          avatar: avatar,
          password: hash,
        });
        res.send({
          code: "200",
        });
      });
    });
  },
};

module.exports = UserController;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2185690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IT新秀系列:Go语言的兴起

Go语言(Golang)由谷歌于2007年发起,并于2009年正式开源。它的诞生背景可以追溯到互联网技术的高速发展时期。那时,软件开发面临着多核计算、大规模并发处理、部署和维护效率低下等挑战。作为一种新型的编程语言,Go主要…

Nginx基础详解5(nginx集群、四七层的负载均衡、Jmeter工具的使用、实验验证集群的性能与单节点的性能)

续Nginx基础详解4(location模块、nginx跨域问题的解决、nginx防盗链的设计原理及应用、nginx模块化解剖)-CSDN博客 目录 14.nginx集群(前传) 14.1如何理解单节点和集群的概念 14.2单节点和集群的比较 14.3Nginx中的负载均衡…

指纹定位的原理与应用场景

目录 原理 1. 信号特征收集 2. 定位算法 推导公式 距离估算公式 定位算法公式 使用场景 发展前景 指纹定位是一种基于无线信号强度(如Wi-Fi、RFID、蓝牙等)来实现室内定位的技术。它借助于环境中多个基站的信号特征来推断用户的位置。以下是对指纹定位的详细讲解,包…

Spring Boot技术交流平台的设计与实践

3 系统分析 3.1 可行性分析 为了研究问题并确定问题是否能够在最短的时间内以最低的成本解决,经过对该项目的详细调查研究,初步准备了系统的实施报告,面临的问题和解决方案在软件开发方面进行了初步设计和合理安排,确定了开发目标…

Geoserver关于忘记密码的解决方法

第一次安装后,如果你设置密码那一栏一直都是默认的话,那么登录密码应该是账户 admin,密码 geoserver 但是,如果你自己设置了密码和账户,登录又登录不上,或者忘记了,有以下方法可以解决。 本质…

Hive数仓操作(九)

一、Hive的DQL查询顺序 HQL语法基本上与传统的SQL一致,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY和LIMIT等关键步骤 SELECT * -- 1. 选择所有列 FROM employees -- 2. 数据来源是 employees 表 WHERE salary > 3000 -- 3. 筛选工资大于 3000 的…

AI在医学领域:Arges框架在溃疡性结肠炎上的应用

溃疡性结肠炎(UC)是一种慢性炎症性肠病(IBD),在全球大约影响着500万人,导致肠道炎症和溃疡。在UC的临床试验中,通常通过内窥镜视频来评估结肠疾病的严重程度,并使用如Mayo内窥镜下分…

leetcode_198_打家劫舍

思路:首先定义一个数组对于dp[i]读作1->i能获取的最大利益,第i个房屋只有"偷"和不"偷"两种情况,分别进行讨论 "偷": 既然"偷"了 i那就肯定不能偷i-1了,但是为了使"偷"的尽可能多除了必…

Microsoft 解釋修改後的 Recall 將如何保障隱私與安全

Microsoft 為 Copilot AI 電腦推出的 Recall 功能,本意是藉由定期進行螢幕截圖,並分析上面的資訊,來協助用戶找到查看過的網頁、工作過的文件等各種資訊。然而雖然立意很好,但 Microsoft 推出之初似乎完全沒有考慮到用戶的隱私安全…

多区域OSPF路由协议

前言 之前也有过关于OSPF路由协议的博客,但都不是很满意,不是很完整。现在也是听老师讲解完OSPF路由协议,感触良多,所以这里重新整理一遍。这次应该是会满意的 一些相关概念 链路状态 链路指路由器上的一个接口,链路状…

Pikachu-Cross-Site Scripting-DOM型xss

DOM型xss DOM型XSS漏洞是一种特殊类型的XSS,是基于文档对象模型 Document Object Model (DOM)的一种漏洞。是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。 dom就是一…

【微服务】初识(day1)

基础概念 集群 集群是将一个系统完整的部署到多个服务器,每个服务器提供系统的所有服务,多个服务器可以通过负载均衡完成任务,每个服务器都可以称为集群的节点。 分布式 分布式是将一个系统拆分为多个子系统,多个子系统部署在…

LeetCode[中等] 279.完全平方

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 1…

【转载翻译】消息队列 - ActiveMQ、RabbitMQ、Kafka、ZeroMQ

转载自本人博客:【转载翻译】消息队列 - ActiveMQ、RabbitMQ、Kafka、ZeroMQ 转载自:The System Design Cheat Sheet: Message Queues - ActiveMQ, RabbitMQ, Kafka, ZeroMQ 本文由 Aleksandr Gavrilenko 发布于2023年12月21日 1. 前言 消息队列是异步服…

NASA:ATLAS/ICESat-2 L3B 平均内陆地表水数据 V002

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3B Mean Inland Surface Water Data V002 ATLAS/ICESat-2 L3B 平均内陆地表水数据 V002 简介 ATLAS/ICESat-2 L3B Mean Inland Surface Water Data V002是由NASA的ICESat-2 (Ice,…

JavaScript break与continue语句

break语句和continue语句都具有跳转作用&#xff0c;可以让代码不按既有的顺序执行。 break break语句用于跳出代码块或循环 for(i0;i<100;i){if(i5){break;}console.log(i);} continue continue语句用于应即终止本轮循环,返回循环结构的头部&#xff0c;开始下一轮循环。…

【从零开始实现stm32无刷电机FOC】【实践】【7.2/7 完整代码编写】

目录 stm32cubemx配置芯片选择工程配置stm32基础配置SPI的配置定时器的配置ADC的配置中断优先级的配置生成工程 工程代码编写FOC代码结构搭建电机编码器角度读取PWM产生FOC开环代码编写确定电机正负旋转方向电机旋转速度计算多圈逻辑角度电流采样极对数转子角度确定 闭环控制控…

两个月冲刺软考——网络与信息安全知识

1. 什么是网络监听&#xff1f; 网络监听是主机的一种工作模式&#xff0c;在这种模式下&#xff0c;主机可以接收到本网段在同一条物理通道上传输的所有信息。 2. 客户端与服务器建立连接的步骤 域名解析 建立TCP连接 发送HTTP请求 服务器处理请求 发送HTTP响应 客户端…

uniapp 上了原生的 echarts 图表插件了 兼容性还行

插件地址&#xff1a;echarts - DCloud 插件市场 兼容性这块儿不知道后期会不会支持其他浏览器 H5 的话建议可以用原生的不用这个插件

【单片机】单片机map表详细解析

1、RO Size、RW Size、ROM Size分别是什么 首先将map文件翻到最下面&#xff0c;可以看到 1.1 RO Size&#xff1a;只读段 Code&#xff1a;程序的代码部分&#xff08;也就是 .text 段&#xff09;&#xff0c;它存放了程序的指令和可执行代码。 RO Data&#xff1a;只读…